如何在使用可变字母数字发件人ID时发送给多个收件人(WITHOUT LOOPING)?

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

我想知道是否有办法设置多个收件人而不是在我的收件人列表上循环?!最重要的是,使用可变字母数字发件人ID而不是购买twilio号码?

我可以为这样的单个收件人做这一切:

$twilio_client->messages->create(
'+64*******', //to
[
    'from'=> 'foo',
    'body' => 'bar'
]);

工作得很好。但是,不能与多个接收器一起使用。


另外请注意,实施smsbroadcast.com.au并通过简单的调用(简单的调用,快速快速,超级简单的文档)传递所有这些只是血腥的一步 - 不像twilio,它有十亿行令人困惑的文档,200个类似的产品和YET没有直接api检查余额,或做一个简单的事情,如多个收件人!!)

sms twilio twilio-api twilio-php
1个回答
0
投票

经过大量的支持和支持,再加上阅读所有过度撰写的文章(所谓的文件),最后我找到了完成所有工作的方法。

[第1步:配置]

您必须实现Notify产品,它是与Message产品不同的产品。

所以从左侧菜单Notify> Service> add New。在这里你需要添加一个Messaging Service并在此处选择Notify。

在Messaging Services页面上,它会要求您购买twilio号码。而只需单击左侧菜单中的Configure并输入您需要的所有详细信息。

特别重要的是,请确保您已选中Alpha Sender ID并在其中输入默认的Alpha发件人文本。如果您的api调用未能接受from参数,这将是默认的回退。

.

[第2步:API调用]

//$notify_service_SID = the SID from the Notify Service you added in step 1
$client = new Client($this->Account_SID, $this->auth_token);
$notify_obj = $client->notify->services($notify_service_SID);

//you need receivers in a JSON object such as the following, plus make sure numbers are starting with country code to ensure alpha sender works correctly
$receivers_json = [0=>'{"binding_type":"sms","address":"+614********"}']+[1=>'{"binding_type":"sms","address":"+614*******"}']

$call_ret = $notify_obj->notifications->create([
    'toBinding'=> $receivers_json,
    'body' => $msg, //actual message goes here
    'sms' => [
        'from'=> $sender //alphanumeric variable sender
    ],
]);

.

[步骤3:检查错误]实施Notify时,没有直接的方法来检查twilio中的所有错误。这是我的混合方法。

  1. notifications->create调用的异常处理
  2. 如果通知失败,$call_ret将拥有err,但是当消息失败时则不会。因为Notify只是将调用传递给Message,并且没有直接的方法来检查Notify调用上的Message错误。所以你要检查$call_ret['err']
  3. 调用Alerts API;获取所有最近的警报,并与您从上次调用收到的通知SID进行匹配。

--

以下是如何进行警报检查:

$alerts = @$client->monitor->v1->alerts->read();

if(is_array($alerts))
foreach($alerts as $av)
{
    $t = @$av->toArray();
    @parse_str($t['alertText'], $alert_details);

    if(isset($alert_details['notificationSid']) && $alert_details['notificationSid'] == $call_retx['sid'])
    {
        $alert_err = $alert_details['description'];
        break;
    }
}

如果出现错误,$alert_err将出错。除此之外,没有直接的方法可以做到这一点。您可以通过crons获取这些警报,也可以设置webhook以便他们进行回电。或者简单地实现一个调用简单的api,它以超简单的方式完成所有操作,例如smsbroadcast

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