我想做到以下幾點:西納特拉,紅寶石和twilio [促進回調機制]
從我的手機叫我twilio數
我twilio號碼識別來電號碼,然後立即掛斷
我twilio號回調的標識號(我的手機號碼)
當我拿起時,twilio要我輸入我想撥打的號碼
Twilio收集我想呼叫的號碼的輸入並連接到我。
所以我可以從我的手機撥打廉價國際電話(或漫遊電話)。
到目前爲止,從twilio網站API文檔拍攝,我有:
require 'rubygems'
require 'sinatra'
require 'twilio-ruby'
get '/' do
account_sid = 'xxxxxxx'
auth_token = 'zzzzzzz'
to = params['From']
#to = '+447928344246'
#to = '441903773807'
from = '442033222327'
Twilio::TwiML::Response.new do |r|
r.Hangup
end.text
# set up a client to talk to the Twilio REST API
@client = Twilio::REST::Client.new account_sid, auth_token
@call = @client.account.calls.create(
:from => from, # From your Twilio number
:to => to, # To any number
:timeout => "20",
# Fetch instructions from this URL when the call connects
:url => 'https://dl.dropboxusercontent.com/u/85088004/twilio/twilio.xml'
)
end
post '/makecall' do
warn params.inspect
account_sid = ' ACaf2b951ae6f7424da036ea9dcd5b0d91'
auth_token = 'my token'
@client = Twilio::REST::Client.new account_sid, auth_token
call = @client.account.calls.create(:url => "https://dl.dropboxusercontent.com/u/85088004/twilio/callback.xml",
:to => params[:Digits],
:from => "+442033222327")
puts call.to
end
的twilio.xml,在 '/' 部分的URL文件是:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather action="/makecall" method="POST">
<Say timeout="10">Enter the number you wish to call</Say>
</Gather>
</Response>
我得到「抱歉發生了應用程序錯誤。「然後它就掛斷了。
warn params.inspect
當我檢查heroku日誌時不會產生任何東西。所以我認爲(其中一個)問題是我撥打的號碼的參數沒有通過。
是否有任何其他邏輯或腳本問題似乎很明顯?
問題出在'/ makecall'片段中的URL上嗎?它si:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
</Hangup>
</Response>
很多,非常感謝!
你爲什麼想切換?我發現ruby與twilio合作非常棒,目前我正在使用它發短信應用程序 –
,這是因爲我不知道如何編寫代碼。如果我能堅持使用紅寶石,那麼我很高興!下面提出的解決方案看起來非常有趣,今天晚些時候我會再試一次。 – user1903663