如何检索用户"基本资料"和经过Google身份验证的用户的电子邮件信息

时间:2015-09-04 14:16:01

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

我正在为网站进行简单的Google登录集成。我需要用户能够单击按钮,通过Google进行身份验证,然后检索一些基本信息 - 名称,ID和电子邮件地址。我使用PHP完成此任务,因为它是我唯一真正的网站选项。

我一直在尝试使用发现here的测试版PHP API,而且大部分都是通过使用here列出的示例来实现的。该示例尝试获取应用程序的用户授权以访问Drive文件元数据,因此我需要更改范围以更适合我们需要的信息。我做了以下调整,似乎工作正常:

出:

$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

在:

$client->addScope("email");

使用Google进行身份验证后,系统会提示您为应用程序授予基本配置文件信息和电子邮件访问权限。我现在遇到的问题是让应用程序实际检索它已被授权访问的信息。我还没有能够找到类似于我的场景的示例,使用我使用的PHP API版本或Google本身提供的示例。

基本上我需要替换它:

$drive_service = new Google_Service_Drive($client);
$files_list = $drive_service->files->listFiles(array())->getItems();
echo json_encode($files_list);

使用可以获取通过我们的应用对Google进行身份验证的用户的姓名,ID和电子邮件的命令。

修改:收到以下答案。不得不做一些小编辑才能让它正常工作。

$google_oauthV2 = new Google_Service_Oauth2($client); [已添加'新'在Google_Service_Oauth2之前

print_r($google_oauthV2->userinfo->get()); [Didn不喜欢dump(),将其更改为print_r以取消结果]

1 个答案:

答案 0 :(得分:0)

只是挖掘源代码,我找到了Github - Google_Service_Oauth2.php

$client->setScopes(array('https://www.googleapis.com/auth/userinfo.email',
          'https://www.googleapis.com/auth/plus.me'));
$google_oauthV2 = Google_Service_Oauth2($client);
dump($google_oauthV2->userinfo->get());