使用 clickatell php 网关 API 向多个号码发送短信

Text multiple numbers using clickatell php gateway API

我目前正在使用 clickatell 通过 FOR 方法向单个号码发送消息

for($i = 0;$i < count($textrecievers); $i++){
$url = 'http://api.clickatell.com/http/sendmsg?user=user&password=****&api_id=00000&to=1'.$textrecievers[$i].'&text='.$msgtxt.'&mo=1&from='.$_SESSION['routing'];

$ret = file($url);
            }

问题在于,如果其中一个失败,我无法将其报告给数据库,因为我无法使用此方法

$send = explode(":",$ret[0]);

                if ($send[0] == "ID") {
echo 'OK';
}

有没有办法像这样将其作为批量文本发送:

$to = array('1111111111','2222222222','3333333333')

然后把它放在usr里面

 $url = 'http://api.clickatell.com/http/sendmsg?user=user&password=****&api_id=00000&to='.$to.'&text='.$msgtxt.'&mo=1&from='.$_SESSION['routing'];

所以它会一次性将它发送到数组中的所有数字,所以我可以报告它是否成功。

不确定我是否理解正确你的问题,但你可以像这样用逗号分隔手机号码:

http://api.clickatell.com/http/sendmsg?api_id=....&to=123456789,123456789,123456789,123456789,123456789,123456789&text=.....

为了安全起见,您可以使用 HTTP GET 用逗号分隔大约 300 个数字(使用 POST 可以使用更多数字,例如 800 - 取决于您等待超时的时间)。

//逗号分隔并为国家代码添加前导 1 $comma_separated = 内爆(",1", $YourArray);

您将收到每条消息(或错误)的跟踪消息 ID,因此您可以跟踪是否有任何特定号码被拒绝。

这是否回答了您的问题?

不幸的是,您不能再使用 http API 在一次呼叫中发送到多个号码(尽管您可以多次循环呼叫 API)

You can send a message to a single handset in one single HTTPS request.

另一种选择是使用 REST API 发送到多个号码(根据他们的文档,每次呼叫最多 200 个):https://www.clickatell.com/developers/api-documentation/rest-api-send-message/