appengine/twilio/app.rb (36 lines of code) (raw):
# Copyright 2016 Google, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
require "sinatra"
require "twilio-ruby"
# Allows all hosts in development
configure :development do
set :host_authorization, { permitted_hosts: [] }
end
TWILIO_ACCOUNT_SID = ENV["TWILIO_ACCOUNT_SID"]
TWILIO_AUTH_TOKEN = ENV["TWILIO_AUTH_TOKEN"]
TWILIO_NUMBER = ENV["TWILIO_NUMBER"]
Twilio.configure do |config|
config.account_sid = TWILIO_ACCOUNT_SID
config.auth_token = TWILIO_AUTH_TOKEN
end
# [START gae_flex_twilio_receive_call]
# Answers a call and replies with a simple greeting.
post "/call/receive" do
content_type :xml
response = Twilio::TwiML::VoiceResponse.new do |r|
r.say message: "Hello from Twilio!"
end
response.to_s
end
# [END gae_flex_twilio_receive_call]
# [START gae_flex_twilio_send_sms]
# Sends a simple SMS message.
get "/sms/send" do
client = Twilio::REST::Client.new
client.messages.create(
from: TWILIO_NUMBER,
to: params[:to],
body: "Hello from Google App Engine"
)
end
# [END gae_flex_twilio_send_sms]
# [START gae_flex_twilio_receive_sms]
post "/sms/receive" do
content_type :xml
sender = params[:From]
message = params[:Body]
response = Twilio::TwiML::MessagingResponse.new do |r|
r.message body: "Hello #{sender}, you said #{message}"
end
response.to_s
end
# [END gae_flex_twilio_receive_sms]