使用twilio的php notify API时,如何设置回调URL?

时间:2018-09-06 18:38:41

标签: php twilio twilio-php

我有以下代码,它会将SMS通知发送到我的手机:

$notification = $twilio->notify->services($serviceSid)
                                    ->notifications->create([
                                        'toBinding' => $batch,
                                        'body' => $txt,
                                        'statusCallback' => 'http://postb.in/b/jarblegarble' // <-- this doesn't work
                                    ]);

但是,即使发送成功,我似乎也无法弄清它们的回调。

我正在仔细研究他们的文档,但找不到如何设置回调URL。我看到他们的一些资源使用“ url”,而另一些资源使用“ statusCallback”(哎呀,其中一个似乎使用“重定向”)。话虽这么说,我似乎无法发布到使用它们的帖子中-必须有一种方法来检查我的通知状态。

2 个答案:

答案 0 :(得分:2)

所以事实证明我在两个方面都错了。

1)回调URL需要通过以下方式传递到您的消息传递服务:

$notification = $twilio->notify->services($serviceSid)
    ->notifications->create([
        'toBinding' => $bindings,
        'body' => $txt,
        'sms' => ['status_callback' => 'http://your_callback_url' ]
    ]);

2)postb.in无法正常工作!在twilio支持确认它是有效的之后,我正在测试上面的代码,因此我决定尝试将其发布到我自己的服务器上,然后捕获捕获的内容。果然,它按照他们的建议工作。

编辑:当时我还不清楚,但是将为每次状态更新发送的每个SMS调用回调URL。因此,这意味着排队,发送和交付。最初,我以为批次本身会得到状态更新,因为我不必关心最多10,000个txt消息的状态。

答案 1 :(得分:1)

您的示例将个人 SMS服务API的statusCallback parameter传递给 universal 通知API。这种混合将不起作用。单独的SMS服务会为该条特定消息设置回调,这对于批量发送而言效率不高。相比之下,通用通知API依赖于web hooks,后者是针对每个服务进行全局配置的。

在您的情况下,最简单的方法是使用单个SMS服务API:

$message = $twilio->messages->create('+15551234567', [ 'body' => 'Hi',
    'from' => '+15559876543',
    'statusCallback' => 'http://postb.in/b/jarblegarble' ]);

要使用通用通知API,您需要在创建通知服务时将PostWebhookUrl设置为目标URL,并安排该URL上的代码处理{ {1}}条消息。有关更多信息,请访问上方的“网络挂钩” URL。

随心所欲的人:从来没有尝试过,而且从字面上看我八年来都没有使用过Twilio,但是以上是我的理论理解。