我想知道是否有一种方法可以设置多个收件人,而不会在我的结尾遍历收件人列表?同样重要的是,在使用可变的字母数字发件人ID而不购买twilio数字时?
我可以像这样对单个收件人执行所有操作:
$twilio_client->messages->create(
'+64*******', //to
[
'from'=> 'foo',
'body' => 'bar'
]);
工作正常。但是,不适用于多个接收器。
还请注意,实现smsbroadcast.com.au
并通过一个简单的调用(简单的调用,快速的快速,超级简单的文档)传递所有这些步骤很容易流血,第一步很简单-不像twilio,它有十亿行混乱文档,200种类似产品,还没有直接的api来检查余额,或做一些简单的事情,例如多个收件人!!
答案 0 :(得分:0)
经过大量的支持和支持,再加上阅读了所有改写的文章(所谓的文档),终于我找到了完成所有任务的方法。
[第1步:配置]
您必须实现通知产品,该产品是与消息产品不同的产品。
因此,从左侧菜单Notify> Service> add New
。在这里,您需要添加一个Messaging Service
并在此处为通知选择它。
在消息服务页面上,它将要求您购买一个twilio号码。只需从左侧菜单中单击Configure
,然后输入您需要的所有详细信息即可。
特别重要的是,请确保已选中Alpha Sender ID
,并在其中输入了默认的Alpha Sender文本。如果您的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步:检查错误] 实施通知时,没有直接的方法可以检查twilio中的所有错误。这是我的混合方法。
对notifications->create
调用的异常处理
$call_ret
将具有err
,但消息失败时不会。因为Notify只是将呼叫传递给Message,并且没有直接方法可以通过Notify呼叫检查Message错误。因此,您需要检查$call_ret['err']
调用Alerts
API;提取所有最近的警报,并与您从上次呼叫中收到的Notification 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
将带有错误。除此之外,没有直接的方法可以做到这一点。您可以通过权杖获取这些警报,也可以设置一个Webhook使其进行回叫。或者只是实现一个调用简单的api,它以超级简单的方式(例如smsbroadcast
)来完成所有操作。