Mat*_*man 3 ruby-on-rails twilio
我的团队和我正在使用twilio发送短信.一切似乎在其他人的本地机器上运行正常(具有相同的确切代码),除了twilio总是向我返回一个验证错误.我正在将消息发送到他们的"特殊号码",因此它实际上不会发送真正的短信,但它仍会返回验证错误.
这是我们发送消息的一些代码:
def send_sms
self.from_phone_number = CONFIG['live_twilio'] ? self.customer.assigned_phone_number : CONFIG['test_phone_number']
self.to_phone_number = CONFIG['live_twilio'] ? self.customer.customer_phone_number : CONFIG['test_phone_number']
begin
report_to_new_relic_insights
send_message_with_twilio!
rescue Twilio::REST::RequestError => e
self.error_description = e.message
end
self.dispatched_at = Time.now
self.save(validate: false)
return e
end
def send_message_with_twilio!
unless self.customer.example_customer?
twilio_params = {
from: "+1#{from_phone_number}",
to: "+1#{to_phone_number}",
body: self.text
}
if ENV['RECORD_TWILIO_STATUSES'].in?(['1', 'true'])
twilio_params[:status_callback] = "#{CONFIG['secure_domain']}/messages/#{id}/update_status"
end
client.account.messages.create(twilio_params)
else
# @onboarding_flow
# don't send the actual SMS to the example customer
self.customer.send_reply_as_example_customer! if self.customer.first_reply?
end
end
def client
@client ||= begin
account_sid = ENV['ACCOUNT_SID'] || CONFIG['account_sid']
auth_token = ENV['AUTH_TOKEN'] || CONFIG['auth_token']
Twilio::REST::Client.new account_sid, auth_token
end
end
Run Code Online (Sandbox Code Playgroud)
每次这一行都运行: client.account.messages.create(twilio_params)
它返回验证错误.除了我的以外,它适用于所有其他本地机器.所有代码完全相同,auth令牌完全相同.任何想法可能是什么问题?(auth令牌正从config.yml中提取出来
更多信息:即使在控制台中运行裸骨twilio客户端并在两台机器中使用相同的确切信息,我的返回错误,我的同事返回有效
Twilio福音传教士在这里.
这可能是众多事情之一,但Twilio抱怨身份验证的唯一原因是,如果您有错误的帐户SID或身份验证令牌.
所以可以保证这是出错的一点:
def client
@client ||= begin
account_sid = ENV['ACCOUNT_SID'] || CONFIG['account_sid']
auth_token = ENV['AUTH_TOKEN'] || CONFIG['auth_token']
Twilio::REST::Client.new account_sid, auth_token
end
end
Run Code Online (Sandbox Code Playgroud)
我的建议是你打开你的终端并运行:
$ printenv
Run Code Online (Sandbox Code Playgroud)
这应该为您打印所有环境变量.您对ACCOUNT_SID和AUTH_TOKEN感兴趣,因此您可以从终端获取这些特定值,如下所示:
$ printenv | grep "ACCOUNT_SID\|AUTH_TOKEN"
Run Code Online (Sandbox Code Playgroud)
如果您使用相同的值,请与您的同行核实.请让我知道结果.