Twilio语音通话 - 错误422

时间:2018-01-21 21:55:11

标签: ruby-on-rails twilio twilio-api

我正在开发一个应用程序,我希望在用户之间实现屏蔽数字。这个想法是......假设你想打电话给我。您无需通过仪表板和/或订单显示页面查看我的号码,而是获得“呼叫”按钮。单击此按钮将导致手机响铃。当您接听电话时,twilio将尝试将您连接到我的号码但是,您将看到的号码将是twilio号码而不是我的号码。 我正在开发Rails。 我想我差不多了,但我还是有错误。这是我的代码:

skip_before_action :verify_authenticity_token, only: [:collect_call]



def call(gardener_phone,twilio_number)
client = Twilio::REST::Client.new(ENV["TWILIO_SID"], 
ENV["TWILIO_AUTH_TOKEN"])
client.calls.create(
  from: twilio_number,
  to: gardener_phone,
  url: "http://www.****.com/calls.xml"
 )
end

def connect_call
response = Twilio::TwiML::VoiceResponse.new
response.dial caller_id: '+4420332*****' do |dial|
  dial.number "+447946*****"
end
render xml: response.to_xml
end

我在routes.rb中添加了这条路线:

post "/calls.xml", to: "users#connect_call"

当我点击按钮时,我接收到来自twilio号码的呼叫,但是我没有被重定向到另一个号码。我收到了语音错误。在twilio仪表板中,日志显示:

An attempt to retrieve content from http://www.****.com/calls.xml 
returned the HTTP status code 422

<?xml version=“1.0” encoding=“UTF-8"?>
<hash>
<status type=“integer”>422</status>
<error>Unprocessable Entity</error>
</hash>

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

您的文件顶部有

skip_before_action :verify_authenticity_token, only: [:collect_call]

跳过collect_call的验证。但是,您的方法称为connect_call

尝试将skip_before_action更改为:

skip_before_action :verify_authenticity_token, only: [:connect_call]

让我知道这是否有帮助。