第一次这样做。我正在努力完成这项工作。现在三天了。我将php Twilio / sdk转换到Laravel并成功将Twilio的api文本发送到我的手机。我现在正在弄清楚如何收到回复文本。
(我为此尝试了laravel包,他们只发送文字,没有收到回复) 我的代码出错了。
Undefined index: From
如果我将标题移到我的视图中,我会收到一个哎呀错误。
我也尝试用
替换REQUEST$name = in_array(Input::get('name'), $people) ? Input::get('name') : 'default';
这是我的接收功能
public function getReceiveSMS() {
// make an associative array of senders we know, indexed by phone number
$people = array(
"1111111111"=>"Curious George",
"1111111111"=>"Boots",
"1111111111"=>"Virgil",
"1111111111"=>"Stephen",
);
// if the sender is known, then greet them by name
// otherwise, consider them just another monkey
if(!$name = $people[$_REQUEST['From']]) {
$name = "Monkey";
}
// now greet the sender
header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
return View::make('account.sms.receive-sms');
}
}
这是我的观点
@extends('layout.main')
@section('content')
<Response>
<Message><?php echo $name ?>, thanks for the message!</Message>
</Response>
@stop
答案 0 :(得分:0)
我不了解Twilio的API,但似乎错误只是基本的PHP,而且Laravel远不如普通PHP那么宽松。意味着未定义的变量和索引会像处理致命的错误一样停止处理。
如果事实上发件人可能是未知的,并且当发生这种情况时From
索引永远不会被设置,则以下内容应阻止您的代码触发Notice
:
// if the sender is known, then greet them by name
// otherwise, consider them just another monkey
if(!isset($_REQUEST['From']) || !$name = $people[$_REQUEST['From']]) {
$name = "Monkey";
}
对于格式错误的XML,请尝试使用此而不是简单的View::make()
:
return Response::view('account.sms.receive-sms', compact('name'))->header('Content-Type', 'text/xml');