【问题标题】:Twilio status callback is not called for trial MMS试用 MMS 不调用 Twilio 状态回调
【发布时间】:2017-04-20 11:50:35
【问题描述】:

我发现了另一个关于回调的问题,但这种情况不同,它期望回调如何工作,以及它使用哪些服务,因此这个问题。 (Twilio Callback URL not Called - PHP & Wordpress)

Twilio 消息服务的控制面板显示:

出站设置

当有消息传入或传出此消息时,向此 URL 发出请求 服务完成。

我可以使用这个配置的服务发送彩信。 我还能够接收彩信/短信回复,这些回复会生成对我的响应 Web 服务的回调(这是一个简单的服务,现在只记录请求数据。)

但是,当我使用 curl 发送彩信时,状态回调永远不会被调用。它与传入 SMS 通知的 URL 完全相同,有效。

我错过了什么? (注意:我是在控制台中配置状态回调URL,而不是在通过curl的请求中。)

这是我发送消息的请求:

#!/bin/bash
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/blahblahblah/Messages.json' \
--data-urlencode 'To=+12345678900' \
--data-urlencode 'From=+9876543210' \
-d 'MessagingServiceCid=blahblahblah' \
--data-urlencode 'Body=Keep on rocking!' \
-d 'MediaUrl=https://webasset-akm.imvu.com/scene/2314.29/hc-2.1/sDr-t4W83vXXRcWetWbXVjWT5S965bhoB8GKHHt316qYA8nVLvcqD-UaPpSBw75_tn5RMCEIjjwSAMwe5J4yMQRTg92GAnwAEcQmzJPaxuHGh7FKNcj2SCDzZuYJusJsJfvgo_1QabUfCXgVPC7wo8J5NBYdpqRoc3_UtLssRphGGlrdUteIGT4vRv-EIvQBXfbAoSGXlpmqoxbRcohXsEgAkY0OBw_KH4qovzIT9P0eVTFErd_aQcAZPpNWBk1c2Rk9LxhOTqCwYesowSr034TfbRppMhTct0WkpU7JxrOjKFCm0tT0WCu7Dye6IryJRj9yet0vmZrrOzu4jvVuUw==.gif' \
-u blahblah:blahblah

(已编辑以从帖子中删除消息服务 cid、帐户 cid 和机密)

【问题讨论】:

    标签: php callback twilio mms


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    这似乎是几件事的结合。

    首先,您提供了From 号码和MessagingServiceCid。这通常不起作用,您应该提供一个或另一个。

    其次,您实际上需要提供一个MessagingServiceSid(这是一个 S,而不是一个 C)。

    所以似乎发生的事情是 Twilio 忽略了您的 MessagingServiceCid 参数并使用您的 From 参数发送了消息。由于它不是来自消息服务,因此您在服务本身上设置的回调不会触发。

    因此,要解决此问题,您需要删除 From 参数并更正为 MessagingServiceSid

    #!/bin/bash
    curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/blahblahblah/Messages.json' \
    --data-urlencode 'To=+12345678900' \
    -d 'MessagingServiceSid=blahblahblah' \
    --data-urlencode 'Body=Keep on rocking!' \
    -d 'MediaUrl=https://webasset-akm.imvu.com/scene/2314.29/hc-2.1/sDr-t4W83vXXRcWetWbXVjWT5S965bhoB8GKHHt316qYA8nVLvcqD-UaPpSBw75_tn5RMCEIjjwSAMwe5J4yMQRTg92GAnwAEcQmzJPaxuHGh7FKNcj2SCDzZuYJusJsJfvgo_1QabUfCXgVPC7wo8J5NBYdpqRoc3_UtLssRphGGlrdUteIGT4vRv-EIvQBXfbAoSGXlpmqoxbRcohXsEgAkY0OBw_KH4qovzIT9P0eVTFErd_aQcAZPpNWBk1c2Rk9LxhOTqCwYesowSr034TfbRppMhTct0WkpU7JxrOjKFCm0tT0WCu7Dye6IryJRj9yet0vmZrrOzu4jvVuUw==.gif' \
    -u blahblah:blahblah
    

    感谢Brent 帮助调试这个。

    【讨论】:

    • 是的,修复了那个错字! (我只添加了 From 是因为 API 抱怨它不存在;真正的原因当然是错字!)
    • @philnash,我遇到了类似的问题,但它在“语音”中。我在拨号动词中接到了我的“操作”网址的电话。但在某些情况下,我最后没有收到状态回调 url 调用。无法解决这个问题。我正在使用新的 Twilio Java SDK 进行出站呼叫。我的 TwiML 应用的状态回调 url 未被调用。
    • 嗨@idarak,在 cmets 中回答您的问题并不容易。如果您可以提出一个新问题并提供您正在使用的代码、您期望发生的事情以及实际发生的事情,我会稍后再接再厉并尽力提供帮助。