3

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

先感谢您!

4

0 回答 0