在Google + API调用时收到HTTP 401未授权


Receiving HTTP 401 Unauthorized when making a Google plus API call

我正试图通过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未授权。如何证明用户授权了我的操作,或者我做错了什么?

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

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

https://developers.google.com/+/快速入门/php


如果你已经获得了一个访问令牌,你可以调用tokeninfo传递访问令牌来获得更多关于用户与它相关联的信息:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.xxxxxxxx..。此时,你可以调用:"https://www.googleapis.com/plus/v1/people/[useridfromaccesstoken]/人/可见?关键= XXXX的;

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