【发布时间】:2016-09-30 23:19:34
【问题描述】:
我正在使用 laravel 5.1 和 twilio 创建一个消息传递 Web 应用程序,并且我正在使用 laravel-twilio 包。
已在 twilio 仪表板中完成设置和配置
在可编程 SMS 部分,我创建了一个带有 copilot 的消息服务,其中包括一个电话号码 ((xxx) xxx-xxx)。
给定一个入站请求 url。
我的 laravel 应用代码
我有简单的用户对用户消息传递,其中两个用户都在线,与 twilio 无关。但是假设一个用户离线,另一个用户在线,并且在线用户向离线用户发送聊天消息,那么我必须通过 twilo 向该用户的电话号码发送短信通知离线用户。
public static function notifyOfflineUser($user,$reply_text){
$message = "Mysite: ".$user->user_from->firstname.", '".strip_tags($reply_text)."' Reply via mysite ".url('general-message')." or SMS";
if($user->profile->mobile) {
try {
\Twilio::message($user->profile->mobile, $message);
} catch (\Exception $e) {
}
}
}
它正在从 twilio 电话号码向用户发送一条短信。
用户可以在哪里通过他/她的电话回复此消息到此号码。 如果回复成功,我必须将消息添加到在线用户的留言板。
//Inbound request url routed to this url with From number, body and other data.
public function smsReply(Request $request){
$user_id_to = Profile::where('mobile', $request->get('From'))->first(['user_id'])->user_id;
$body = $request->get('Body');
$user_id_from = Message::where('user_id_to', $user_id_to)->orderBy('id', 'desc')->first()->user_id_from;
//dd($request->all());
$message = new Message();
$message->user_id_from = $user_id_to;
$message->user_id_to = $user_id_from;
$message->message = $body;
$message->save();
return response()->json(true);
}
现在,如果多个在线用户向该离线用户发送聊天消息,离线用户将从同一个 twilio 号码收到多条短信,并且所有短信都在同一个堆栈中,这意味着如果他/她不会以不同的短信形式出现回复它将发送到相同号码的短信,所有在线用户都会在他们的留言板中添加相同的消息。
现在这是我的问题..
是否还有其他需要表单 twilio 之类的信息,例如多个号码、短代码、免费电话,或者我必须使用我的 laravel 代码来解决问题,以便我可以将每条短信作为不同的短信发送到离线用户的手机,这样我就可以将它们与入站请求网址?如果需要更多信息,请随时询问我。
【问题讨论】:
标签: php laravel laravel-5.1 twilio twilio-php