我正在尝试在我的应用中添加使用 Google 登录。在用户重定向到谷歌并返回(使用code
)后,我需要获取访问令牌:
$url = "https://accounts.google.com/o/oauth2/token";
$content = "code={$code}&client_id={$params['appid']}&client_secret={$params['secret']}&" .
"redirect_uri=$return_url&grant_type=authorization_code";
$opts = array(
'http'=>array(
'method'=>'POST',
'header'=>'Content-type: application/x-www-form-urlencoded\r\n' .
'Content-Length: ' . strlen($content)
)
);
$cont = stream_context_create($opts);
$response = file_get_contents($url + '?' + $content, false, $cont);
最后一行抛出警告[function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 411 Length Required
。不过,如您所见,我将Content-Length
标头放入请求中。有人可以告诉我做错了什么吗?
先感谢您!