2014-11-21 72 views
0

我正在構建一個發送短信消息的紅寶石應用程序,我正在使用twilio gem。我正在按照示例1進行測試,在文檔中發送短信。twilio測試憑據不適用於發送短信 - 拋出異常「測試帳戶憑證不可用資源」

例如在Twilio網站:

# Get your Account Sid and Auth Token from twilio.com/user/account 
account_sid = 'ACb62e32327e8ec258781341a039e65c46' 
auth_token = '{{ auth_token }}' 
@client = Twilio::REST::Client.new account_sid, auth_token 

sms = @client.account.sms.messages.create(:body => "All in the game, yo", 
    :to => "+14108675309", 
    :from => "+15005550006") 
puts sms.body 

https://www.twilio.com/docs/api/rest/test-credentials#test-sms-messages

這裏是我的代碼看起來像

client = Twilio::REST::Client.new(ENV['twilio_account_sid'], ENV['twilio_auth_token']) 

response = client.account.sms.messages.create({ 
:from => '+15005550006', 
:to => '<<a valid number>>', 
:body => "Some message" 
}) 

當我發送與我的測試證書的有效數字,這有效的測試從號碼(15005550006)我得到一個異常說

「資源無法通過測試帳戶憑據訪問」

我看不出我在做什麼不同於示例。

感謝您的幫助。

回答

1

因爲你使用的測試帳戶,則必須使用預定義的to號碼,如這裏顯示的一個:Twilio Doc

如果使用的是實數,你會得到你看到的錯誤。

+0

我不認爲這就是它。例子中說''成功發送一條短信,通過發送短信,使用魔術號碼+15005550006作爲From號碼,以及To號碼的普通電話號碼來觸發。「'此例子使用常規號碼」14108675309「但是預先定義了'to'數字 – 2014-11-21 16:27:01

+0

你絕對是對的,但僅僅爲了測試目的,當你使用預定義的數字時會發生什麼? – iMacTia 2014-11-21 16:36:57

+0

測試中沒有有效的「to」號碼。他們提供的所有「to」數字都用於測試錯誤。唯一有效的號碼是來自號碼「5005550006」,如果我使用它,我會得到相同的消息「」資源無法通過測試帳戶憑證訪問「 – 2014-11-21 16:51:07

1

很可能你的POST後有一個GET請求來發送短信。

我得到了同樣的錯誤後,我取出GET請求

$message = $client->account->messages->get($sms->sid); 

,現在它運作良好。 (測試憑據將與POST請求只工作)

0

隨着PHP SDK(不知道其他人),此消息的結果,如果試圖在使用測試憑據訪問Twilio的迴應error_codeerror_message性能。

一個簡單的解決方案是將包裹的任何企圖在條件邏輯(僞代碼)來訪問這些值:

if (env('TWILIO_SID') !== 'AC2593237dd083dcde0480771b908f9de2') { 
    //NOT using test credentials. Safe to access properties. 
} 
else { 
    //Using test credentials. Accessing properties throws exception. 
}