我正在研究一个项目,在某些事件下它将发送一条SMS消息。
我计划的是SMS交付时,我会保留一条记录,既可以用于调试目的(如果需要),也可以保留我的服务正在发生的历史。我计划记录的一件事是传递消息的成本。从Twilio文档看来,这是可能的,除了当我发送消息时,我返回的响应是状态queued
,价格是null
。
然后我使用Twilio Webhook回叫进行了调查,以便我收到有关SMS传送状态的更新,这也很好,但我没有得到价格,我只收到以下消息:
(
[SmsSid] => redacted
[SmsStatus] => delivered
[MessageStatus] => delivered
[To] => redacted
[MessageSid] => redacted
[AccountSid] => redacted
[From] => redacted
[ApiVersion] => 2010-04-01
)
以下是我发送短信的方式
$twilio = new \Twilio\Rest\Client($sid, $token);
$message = $twilio->messages->create("redacted", array(
"body" => $smsContent,
"from" => "redacted",
"statusCallback" => $callback
));
我如何从Twilio获得短信发送的价格?
答案 0 :(得分:0)
我已经找到了一种方法,但是似乎效率不高,因为我必须向Twilio发送另一个请求以获取SMS的完整状态,但这是我的工作方式。
我通过Webhook收到了Twilio请求,然后我使用SmsId
来获取消息,该消息的发布方式如下:
$smssid = $_POST["SmsSid"];
$twilio = new \Twilio\Rest\Client($sid, $token);
$message = $twilio->messages($smssid)->fetch();
$twilioResponse = new TwilioResponse($message);
FYI TwilioResponse
是我自己的类,具有在构造函数中传递的$ message,然后使用它来构建和解析自己的版本以满足我的需要。