首页 > 解决方案 > 使用 Twilio Notify API 发送批量 SMS 时,如何将 status webhook 回调绑定到原始消息?

问题描述

使用通知 API 发送 SMS 时,我会返回一个通知 sid。

Body:
  "sid":"NT49cefe1c684f470648e59883c1bcc556",

在 Twilio.com 的仪表板中,我使用消息服务配置了通知。该消息服务已配置为调用我的自定义 Web 服务(Twilio 术语中的 webhook)。我收到消息发送到的每个绑定的状态,但没有原始通知“事件”的 ID,因此我可以将它们绑定在一起。

我期待在某处看到“NT”ID。

Body:
  SmsSid=SM89ca8924434306734be97ecb28c5b5cc
  SmsStatus=delivered
  MessageStatus=delivered
  MessagingServiceSid=MG767836bd41ab8b07c00d41582f15f2a1
  MessageSid=SM89ca8924434306734be97ecb28c5b5cc

如何将这些 webhook 状态与原始通知联系起来?

标签: javatwiliotwilio-api

解决方案


Twilio 无法将通知链接到单个消息。(见https://stackoverflow.com/a/52157927/1196148

但是,您可以使用该status_callback参数指定此通知唯一的自定义 Webhook URL。添加一个额外的参数,以便 webhook 可以找到触发通知的资源:

$notification = $client
    ->notify->services( $serviceSid )
    ->notifications->create( [
        "toBinding" => [
            '{"binding_type":"sms", "address":"+15555555555"}',
            '{"binding_type":"sms", "address":"+16666666666"}',
        ],
        "body" => "Hello",
        "sms" => [
            "status_callback" => "https://example.com/status/?id=" . $some_id,
        ],
    ] );

推荐阅读