twilio测试凭据不适用于发送短信 - 抛出异常“测试帐户凭证不可用资源”

问题描述:

我正在构建一个发送短信消息的红宝石应用程序,我正在使用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)我得到一个异常说

“资源无法通过测试帐户凭据访问”

我看不出我在做什么不同于示例。

感谢您的帮助。

因为你使用的测试帐户,则必须使用预定义的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

很可能你的POST后有一个GET请求来发送短信。

我得到了同样的错误后,我取出GET请求

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

,现在它运作良好。 (测试凭据将与POST请求只工作)

随着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. 
}