我有2个使用Twilio分别发送媒体文件和文本消息的功能。大多数时候,我想先发送照片,然后再发送短信。但是,当我同时调用这两个功能时,短信会在照片之前发送。如何确保照片先发送文字。
//sends photo
public static function sendMediaMessage($phone, $mediaUrl, $msg = null){
try{
$client = new Client(env('TWILIO_SID'), env('TWILIO_TOKEN'));
$send = $client->messages->create(
"whatsapp:".$phone,
array(
'from' => "whatsapp:".env('TWILIO_NUMBER'),
'body' => $msg,
'mediaUrl' => [$mediaUrl],
)
);
}catch (\Exception $exception){
}
}
//send text messages
public static function sendWhatsAppMessage($phone, $message){
try{
$client = new Client(env('TWILIO_SID'), env('TWILIO_TOKEN'));
$send = $client->messages->create(
"whatsapp:".$phone, // Text this number
array(
'from' => "whatsapp:".env('TWILIO_NUMBER'),
'body' => $message
)
);
}catch (\Exception $exception){
}
}
拨打电话
myClass::sendMediaMessage();
myClass::sendWhatsAppMessage();
Twillio documentation建议您可以使用statusCallback
字段提供回调URL。
如果指定,我们会将这些消息状态更改发布到URL:已排队,失败,已发送,已传递或未传递。您可以为其配置路由,然后发送第二条消息。
或者,您可以查看Twillio拥有的message feedback系统。
要跟踪消息反馈,必须在首次创建消息时设置ProvideFeedback = true。这将创建一个结果未确认的消息反馈实例。
我不确定应使用上述哪种方法,这取决于您。