This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require "google/api_client" | |
| require "sinatra" | |
| require "twilio-ruby" | |
| require "json" | |
| post "/receivesms" do | |
| client = Google::APIClient.new(:key => "ABC123") | |
| client.authorization = nil | |
| search = client.discovered_api('customsearch') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| post "/subcallback" do | |
| reply_result = @client.execute( | |
| :api_method => @glass.timeline.get, | |
| :parameters => {"id" => @data["itemId"]}, | |
| :authorization => @client.authorization) | |
| reply = reply_result.data.text | |
| msg_result = @client.execute( | |
| :api_method => @glass.timeline.get, | |
| :parameters => {"id" => reply_result.data.inReplyTo}, | |
| :authorization => @client.authorization) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| post "/receivesms" do | |
| timeline_item = @glass.timeline.insert.request_schema.new({ | |
| :sourceItemId => params[:SmsSid], | |
| :menuItems => [{:action => "REPLY"}, {:action => "READ_ALOUD"}], | |
| :html => "<article>\n <section>\n <div class=\"text-auto-size\" style=\"\">\n <p class=\"yellow\">SMS from #{params[:From]}</p>\n <p>#{params[:Body]}</p>\n </div>\n </section>\n <footer>\n <div><img src=\"http://i.imgur.com/VM8Jji2.png\"></div>\n </footer>\n</article>", | |
| :speakableText => params[:Body], | |
| :title => "SMS from #{params[:From]}", | |
| :notification => {:level => "AUDIO_ONLY"} | |
| }) | |
| result = @client.execute( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| get "/" do | |
| api_result = @client.execute( | |
| :api_method => @oauth2.userinfo.get) | |
| "You have authenticated as G+ user #{api_result.data.name}, your new Twilio-powered Glass phone number is #{@phone_number}<br><a href='http://www.twilio.com/' style='text: decoration: none; display: inline-block; width: 166px; height: 0; overflow: hidden; padding-top: 31px; background: url(http://www.twilio.com/packages/company/img/logos_icon_poweredbysmall.png) no-repeat;'>powered by twilio</a><br><br>Built by <a href='http://twitter.com/jomarkgo'>@jonmarkgo</a>" | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| get "/oauth2authorize" do | |
| redirect @client.authorization.authorization_uri.to_s, 303 | |
| end | |
| get "/oauth2callback" do | |
| @client.authorization.fetch_access_token! | |
| token_pair = if session[:token_id] | |
| TokenPair.get(session[:token_id]) | |
| else | |
| TokenPair.new |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| if request.path_info == '/subcallback' #if we get a push from google, do a different lookup based on the userToken | |
| @data = JSON.parse(request.body.read) | |
| token_pair = TokenPair.get(@data['userToken']) | |
| @phone_number = token_pair.phone_number | |
| @client.authorization.update_token!(token_pair.to_hash) | |
| else | |
| if session[:token_id] #if the user is logged in | |
| token_pair = TokenPair.get(session[:token_id]) | |
| @client.authorization.update_token!(token_pair.to_hash) | |
| @phone_number = token_pair.phone_number |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| before do | |
| @base_url = "https://myserver.com" | |
| @twilio = Twilio::REST::Client.new "ACxxxxxxxxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyyyyyyyyy" | |
| @client = Google::APIClient.new | |
| @client.authorization.client_id = "1234.apps.googleusercontent.com" | |
| @client.authorization.client_secret = "ITSASECRET" | |
| @client.authorization.scope = [ | |
| "https://www.googleapis.com/auth/glass.timeline", | |
| "https://www.googleapis.com/auth/userinfo.profile" | |
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require './app' | |
| run Sinatra::Application |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| source 'https://rubygems.org' | |
| gem 'google-api-client' | |
| gem 'twilio-ruby' | |
| gem 'sinatra' | |
| gem 'data_mapper' | |
| gem 'rack-ssl-enforcer' | |
| group :production do | |
| gem "pg" | |
| gem "dm-postgres-adapter" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require "sinatra" | |
| require "google/api_client" | |
| require "data_mapper" | |
| require "twilio-ruby" | |
| require 'rack-ssl-enforcer' | |
| DataMapper::setup(:default, ENV["DATABASE_URL"] || "sqlite3://#{Dir.pwd}/dev.db") | |
| class TokenPair | |
| include DataMapper::Resource |