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

问题描述 投票:1回答:2

我有以下代码,它会向我的手机发送短信通知:

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

然而,即使发送工作,我似乎无法弄清楚他们的回调。

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

php twilio twilio-php
2个回答
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支持确认它有效后,我决定尝试发布到我自己的服务器并捕获POSTed内容。果然,它按照他们的建议工作。

编辑:当时我不清楚,但是每个状态更新发送的每条短信都会调用回调URL。这意味着排队,发送和交付。我最初认为我只是获得批次本身的状态更新,因为我不一定关心最多10,000个txt消息的状态。


1
投票

您的示例将单个SMS服务API的statusCallback parameter传递给通用通知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处的代码来处理onMessageSent消息。更多在上面的“web hooks”URL。

注意事项:没有尝试过任何这个,我在八年内没有使用过Twilio,但以上是我的理论上的理解。

© www.soinside.com 2019 - 2024. All rights reserved.