获取来自http请求的输入数组 - Twilio

时间:2014-07-16 11:49:14

标签: php laravel twilio

第一次这样做。我正在努力完成这项工作。现在三天了。我将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

1 个答案:

答案 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');