【问题标题】:Get status of SMS send though Twilio notify通过 Twilio 通知获取 SMS 发送的状态
【发布时间】:2018-02-08 13:37:37
【问题描述】:

我已使用 Twilio api 发送通知消息。消息正在正确发送。

$notification = $client
    ->notify->services($serviceSid)
    ->notifications->create([
        "toBinding" => [
            '{"binding_type":"sms", "address":"+971444444444"}',
            '{"binding_type":"sms", "address":"+971444444445"}'
        ],
        'body' => 'Test message 8'
    ]);

请求的响应是 201,并返回一个以 'NT' 开头的 sid。如何跟踪此消息的状态?

【问题讨论】:

    标签: twilio twilio-api twilio-php


    【解决方案1】:

    应该是这样的:

    PHP:

    $notification = $client
        ->notify->services($serviceSid)
        ->notifications->create([
            "toBinding" => [
                '{"binding_type":"sms", "address":"+971444444444"}',
                '{"binding_type":"sms", "address":"+971444444445"}'
            ],
            'body' => 'Test message 8'
            'sms' => ['status_callback' => 'https://youcallbackurl.com']
        ]);
    

    或Javascript

    const service = twilio.notify.services(notifyId);
    const bindings = numbers.map(number => {
            return JSON.stringify({ 
                binding_type: 'sms', 
                address: number,
            });
        });
    
    service.notifications.create({
            toBinding: bindings,
            body: message,
                    sms: {
                        status_callback: 'https://youcallbackurl.com'
                    }
      })
    

    【讨论】:

    • 我不知道为什么这个答案是 -1 票,因为这似乎是使用 Notify API(无论如何在 PHP 中)配置回调 URL 的正确方法,而选择的答案没有工作。
    【解决方案2】:

    twilio 有一个 callback 状态 webhook ,您需要对其进行配置以跟踪短信的传递状态

    $notification = $client
        ->notify->services($serviceSid)
        ->notifications->create([
            "toBinding" => [
                '{"binding_type":"sms", "address":"+971444444444"}',
                '{"binding_type":"sms", "address":"+971444444445"}'
            ],
            'body' => 'Test message 8'
            'statusCallback' => "your public end point to track sms delivery status"
        ]);
    

    查看更多here

    【讨论】:

    • 似乎对我不起作用。看起来它只适用于$twilio->messages->create
    【解决方案3】:

    使用 PHP 通过 Twilio 发送多条短信的步骤

    1. 在 Twilio 上创建帐户
    2. 获取 Twilio 号码
    3. 在此处添加电话号码:https://www.twilio.com/console/phone-numbers/verified
    4. 在此处创建通知服务:https://www.twilio.com/console/notify/services 并复制“SERVICE SID”(这将在代码中使用)
    5. 在此处创建消息服务:https://www.twilio.com/console/sms/services
    6. 在通知 - 配置页面下选择MESSAGING SERVICE SID,您在第 5 步创建的内容:
    $sid = 'ACb2f967a907520b85b4eba3e8151d0040'; //twilio service SID
    $token = '03e066de1020f3a87cec37bb89f56dea'; //twilio Account SID
    $serviceSid = 'IS4220abf29ae4169992b8db5fc2668b10'; //Notify service SID
    $client = new Client($sid, $token);
    $rs = $client->notify->services($serviceSid)->notifications->create([
        "toBinding" => [
            '{"binding_type":"sms", "address":"+919999999999"}',
            '{"binding_type":"sms", "address":"+919999999999"}'
        ],
        'body' => 'Test message 8',
        'statusCallback' => "your public end point to track sms delivery status"
    ]);
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 2017-10-12
      • 2018-08-08
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多