如何在google plus API中获取电子邮件地址以及人员列表

时间:2013-07-16 09:24:29

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

我在我的网络应用中使用google plus API。我可以从google plus中取出所有人

我的代码是

$this->client = new Google_Client();
        $this->client->setApplicationName($CI->config->item('application_name', 'googleplus'));
        $this->client->setClientId($CI->config->item('client_id', 'googleplus'));
        $this->client->setClientSecret($CI->config->item('client_secret', 'googleplus'));
        $this->client->setRedirectUri($CI->config->item('redirect_uri', 'googleplus'));
        $this->client->setDeveloperKey($CI->config->item('api_key', 'googleplus'));

        $this->plus = new Google_PlusService($this->client);
              $this->auth2 = new Google_Oauth2Service($this->client);

$peoples = $this->plus->people->listPeople('me','visible');

在这里,我得到了我圈子中所有人的名单。但我没有得到人们的电子邮件地址和生日。我怎么能得到那些?

2 个答案:

答案 0 :(得分:3)

获得Google+ ID列表后,您需要拨打一个people.get来获取这些用户的[公开]个人资料数据。在PHP中,此调用看起来像$me = $plus->people->get('me');。对于授权用户,可以使用“me”关键字。否则,您可以使用Google+ ID拨打电话。

拨打电话后,您可以提取与您相关的属性(完整列表:https://developers.google.com/+/api/latest/people)。

但是,要获取用户的Google电子邮件地址,除https://www.googleapis.com/auth/userinfo.email范围外,还需要包含plus.login范围。这意味着您只能获得授权用户的电子邮件地址。

答案 1 :(得分:0)

请阅读Google+ OAuth 2.0 scopes上的文档,其中说明您需要使用范围https://www.googleapis.com/auth/userinfo.email,然后将您的访问令牌发送到tokenInfo端点以获取用户的电子邮件地址作为验证信息的一部分