使用twilio的php notify API时,如何设置回调URL?
When using twilio's php notify API, how do you set your callback URL?
我有以下代码,它会向我的 phone 发送短信通知:
$notification = $twilio->notify->services($serviceSid)
->notifications->create([
'toBinding' => $batch,
'body' => $txt,
'statusCallback' => 'http://postb.in/b/jarblegarble' // <-- this doesn't work
]);
然而,即使发送有效,我似乎无法弄清楚他们的回调。
我正在搜索他们的文档,但找不到如何设置回调 URL。我看到他们的一些资源使用 "url",而其他资源使用 "statusCallback"(见鬼,有人似乎使用 "redirect")。话虽如此,我似乎无法 post 到 postb.in 使用它们——必须有一种方法来检查我的通知状态。
您的示例通过了 statusCallback
parameter of the individual SMS service API to the universal notify API. This mixing won't work. The individual SMS service sets up a callback for that one particular message, which isn't efficient for batch sends. The universal notify API, in contrast, relies on web hooks,这是针对每个服务进行全局配置的。
在您的情况下,最简单的做法是使用个人 SMS 服务 API:
$message = $twilio->messages->create('+15551234567', [ 'body' => 'Hi',
'from' => '+15559876543',
'statusCallback' => 'http://postb.in/b/jarblegarble' ]);
要使用通用通知 API,您需要在 创建 通知时将 PostWebhookUrl
设置为目标 URL服务,并安排 URL 处的代码处理 onMessageSent
消息。更多内容见上方 "web hooks" URL。
买者自负:这些我都没试过,我也八年没用过Twilio了,但以上是我的理论理解。
原来我在两个方面都错了。
1) 回调 URL 需要以这种方式传递给您的消息服务:
$notification = $twilio->notify->services($serviceSid)
->notifications->create([
'toBinding' => $bindings,
'body' => $txt,
'sms' => ['status_callback' => 'http://your_callback_url' ]
]);
2) postb.in 没用!我正在测试上面的代码,在 twilio 支持人员确认它是有效的之后,我决定尝试 post 到我自己的服务器并只捕获发布的内容。果然,它按照他们的建议工作。
编辑:当时我并不清楚,但是对于每次状态更新发送的每条短信都会调用回调 URL。所以这意味着排队、发送和交付。我最初以为我只是获取批处理本身的状态更新,因为我不一定关心最多 10,000 条 txt 消息的状态。
我有以下代码,它会向我的 phone 发送短信通知:
$notification = $twilio->notify->services($serviceSid)
->notifications->create([
'toBinding' => $batch,
'body' => $txt,
'statusCallback' => 'http://postb.in/b/jarblegarble' // <-- this doesn't work
]);
然而,即使发送有效,我似乎无法弄清楚他们的回调。
我正在搜索他们的文档,但找不到如何设置回调 URL。我看到他们的一些资源使用 "url",而其他资源使用 "statusCallback"(见鬼,有人似乎使用 "redirect")。话虽如此,我似乎无法 post 到 postb.in 使用它们——必须有一种方法来检查我的通知状态。
您的示例通过了 statusCallback
parameter of the individual SMS service API to the universal notify API. This mixing won't work. The individual SMS service sets up a callback for that one particular message, which isn't efficient for batch sends. The universal notify API, in contrast, relies on web hooks,这是针对每个服务进行全局配置的。
在您的情况下,最简单的做法是使用个人 SMS 服务 API:
$message = $twilio->messages->create('+15551234567', [ 'body' => 'Hi',
'from' => '+15559876543',
'statusCallback' => 'http://postb.in/b/jarblegarble' ]);
要使用通用通知 API,您需要在 创建 通知时将 PostWebhookUrl
设置为目标 URL服务,并安排 URL 处的代码处理 onMessageSent
消息。更多内容见上方 "web hooks" URL。
买者自负:这些我都没试过,我也八年没用过Twilio了,但以上是我的理论理解。
原来我在两个方面都错了。
1) 回调 URL 需要以这种方式传递给您的消息服务:
$notification = $twilio->notify->services($serviceSid)
->notifications->create([
'toBinding' => $bindings,
'body' => $txt,
'sms' => ['status_callback' => 'http://your_callback_url' ]
]);
2) postb.in 没用!我正在测试上面的代码,在 twilio 支持人员确认它是有效的之后,我决定尝试 post 到我自己的服务器并只捕获发布的内容。果然,它按照他们的建议工作。
编辑:当时我并不清楚,但是对于每次状态更新发送的每条短信都会调用回调 URL。所以这意味着排队、发送和交付。我最初以为我只是获取批处理本身的状态更新,因为我不一定关心最多 10,000 条 txt 消息的状态。