2

我目前正在使用 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'];

所以它会在 1 go 时将它发送到数组中的所有数字,所以我可以将它报告为成功与否。

4

2 回答 2

3

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

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

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

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

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

这回答了你的问题了吗?

于 2015-06-08T07:03:25.123 回答
0

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

您可以在一个 HTTPS 请求中向单个手机发送消息。

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

于 2018-05-02T09:41:15.450 回答