【问题标题】:XML not generating for twilio in ruby fileXML 未在 ruby​​ 文件中为 twilio 生成
【发布时间】:2016-02-09 11:01:56
【问题描述】:

我正在使用 Twilio 构建电话号码验证应用程序。密切关注this 教程。但是,我无法像specific page 所说的那样生成有效的 XML。我怎样才能解决这个问题?

我的主要问题是我无法让 Twilio 读取我在 twilio-quickstart.rb 中设置的 TwiML 文档。我已经运行了 ruby​​ twilio-quickstart.rb 并使用 ngrok 暴露了我的端口。在浏览器上,我可以看到 TwiML 标签中的文字,但在调用中,不断收到应用程序错误。 Twilio 日志通过此消息指示 HTTP 检索失败。

尝试从 http://adfsfsdf.ngrok.io/hello-monkey 返回 HTTP 状态码 404.

怀疑 XML 文档的生成方式有错误(我可能错了) 在浏览器中...而不是得到这个...

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say>Hello Monkey</Say>
</Response>

我收到了...

按 1 验证您的号码

而给定的example urls 之一清楚地显示了 xml 页面。

只是为了确定 - 我已经正确设置了我的 ngrok。

如何正确生成 XML 文档?或者,如何克服 Twilio 日志显示的 HTTP 检索错误?

【问题讨论】:

    标签: ruby-on-rails xml twilio


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    这里可能会发生一些事情,所以我一开始可能不正确,但我们可以努力为您解决问题。

    您从 Twilio 收到的错误是 404,这意味着 Twilio 找不到它要查找的 URL。如果您可以访问自己的端点并获得响应,那么您和 Twilio 之间可能有问题。

    我不确定您是如何设置 ngrok 的,但这可能是问题所在。每次重新启动 ngrok 时,您都会获得一个新的子域,因此您可能需要更新您的 Twilio 号码上的 URL。

    如果在浏览器中看不到 XML,那是因为快速入门没有设置正确的内容类型。你可以在 Sinatra 中通过设置内容类型来解决这个问题,你可以这样做:

    get '/hello-monkey' do
      content_type "text/xml"
      Twilio::TwiML::Response.new do |r|
        r.Say 'Hello Monkey'
      end.text
    end
    

    让我知道这是否有帮助。

    【讨论】:

    • 谢谢 - 指定 content_type 有助于在浏览器中查看 xml。但是,我仍然遇到同样的错误。我已经指定了要从中读取 twiml 的 url(这是在我的浏览器中工作的 ngrok url,但不知何故无法被 twilio 获取)。检查 ngrok url 是否也是一致的..
    • 电话号码设置为 GET 还是 POST?确保与 Sinatra 中的路线匹配
    • 电话号码设置为 POST - 如何确保它与 Sinatra 中的路线匹配?是通过在指定 from/to 字段后将 url 设置为正确的(即 ngrok 一个)吗?
    • 从您链接到的示例以及我在回答中使用的代码,您使用的 Sinatra 路由将响应 GET 请求 (get '/hello-monkey' do)。您可以将其从 get 更改为 post,或者将 Twilio 门户中的数字配置从 POST 更改为 GET。只要它们匹配,您的请求就应该通过。
    • 太棒了!很高兴你们都整理好了!
    猜你喜欢
    • 2015-09-29
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2015-05-17
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多