在进行Google + API调用时接收HTTP 401未经授权

时间:2013-04-05 09:26:05

标签: php google-plus google-api-php-client

我正在尝试通过API从Google plus获取所有朋友的列表。我正在执行此操作的用户先前已授权我的请求,并且我获得了身份验证令牌。我在php中尝试了以下代码:

function CallAPI() {
  $opts = array(
    "http" => array(
      "method" => "GET"
    )
  );

  $url = 'https://www.googleapis.com/plus/v1/people/me/people/visible?key=XXXX';    
  $context = stream_context_create($opts);
  $response = file_get_contents($url, false, $context);
  var_dump($response);
}

但我一直收到HTTP请求失败! HTTP / 1.0 401未经授权。如何证明用户授权我的操作或我做错了什么? 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

您需要对用户进行身份验证才能使用特殊关键字“me”,因此使用简单的API密钥将无效(假设传递的密钥是您的简单密钥)。相反,您需要获取访问令牌并传递它。

有关如何使用PHP客户端库在PHP中执行此操作的一个很好的示例,请尝试快速入门:

https://developers.google.com/+/quickstart/php


如果您已获得访问令牌,则可以调用tokeninfo传递访问令牌以获取有关用户与之关联的更多信息:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.xxxxxxxx ...

此时,您可以致电: 'https://www.googleapis.com/plus/v1/people/ [useridfromaccesstoken] /人/可见密钥= XXXX?';

要验证您的API密钥是否正确,但我建议您使用快速入门示例中演示的客户端库。