【问题标题】:On Getting Permission for to Access User's Email关于获取访问用户电子邮件的权限
【发布时间】:2017-03-17 02:55:40
【问题描述】:

我正在使用 Google APIs PHP 客户端来访问 Google Drive API。

我的问题是我想获得访问用户电子邮件的权限。但是,身份验证屏幕没有显示我正在寻求的许可。它只是显示“应用程序希望 ....具有离线访问权限。但是从 Google API 操场完成后,它会正确显示对用户电子邮件提示的访问权限。

所以我认为在创建身份验证 url 时我的代码级别有问题。请帮我解决问题。

        $client = new Google_Client();

        $guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_SSL_VERIFYPEER => false, ), ));
        $client->setHttpClient($guzzleClient);
        $client->setAuthConfig($oauth_credentials);

        $client->setRedirectUri($redirect_uri);
        $client->setAccessType('offline');
        $client->setApprovalPrompt('force');
        $client->setState($this->uri->segment(3));
        $client->addScope("https://www.googleapis.com/auth/drive");

【问题讨论】:

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


    【解决方案1】:

    如果您想要的只是当前经过身份验证的用户的电子邮件地址,您可以简单地通过 google drive api。

    About.get 方法获取有关用户、用户的驱动器和系统功能的信息。

    {
     "user": {
      "kind": "drive#user",
      "displayName": "Linda Lawton",
      "photoLink": "xxxx",
      "me": true,
      "permissionId": "xxxx",
      "emailAddress": "xxxx@gmail.com"
     }
    }
    

    关于范围的附注:

    Scopes 告诉用户您要访问哪些数据。 https://www.googleapis.com/auth/drive 基本上说您希望完全访问他们的 Google 驱动器帐户 https://www.googleapis.com/auth/classroom.profile.emails 会请求访问他们的电子邮件地址。

    离线访问

    'offline' 告诉用户您希望在他们不使用您的应用程序时能够访问他们的帐户。通过添加此项,您将收到一个刷新令牌,您可以随时保存并使用它来获取新的访问令牌以访问用户数据。

    【讨论】:

      猜你喜欢
      • 2011-08-17
      • 1970-01-01
      • 2013-12-01
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多