PHP + OAuth + Google:获取“需要长度”而不是访问令牌

时间:2012-09-07 21:20:51

标签: php oauth

我正在尝试在我的应用中添加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标头放入请求中。有人可以告诉我做错了吗?

提前谢谢!

0 个答案:

没有答案