2016-10-15 5 views
0

私は多くの投稿を読んでいました。多くの人が試してみることができ、最終的に部分的な回答を得ました。私が最初に探していた電子メールアドレスは含まれていません。Googleドライブ - OAuth(またはどこか)から電子メールアドレスを取得する必要があります

define('SCOPES', implode(' ', array(
     Google_Service_Drive::DRIVE, 
     Google_Service_Oauth2::USERINFO_EMAIL, 
     Google_Service_Oauth2::USERINFO_PROFILE, 
     Google_Service_Oauth2::PLUS_ME) 
)); 

注:私は$結果のダンプは、いくつかの情報を持っていますが、メールではない...いくつかは、必要とされないことも知っているが、申し訳ありません右より良い安全な... ?? ..

$accessToken = "{\"access_token\":\"ya29.CjR9A6X75 bla bla bla 02913}"; 

$client = new Google_Client(); 
$client->setApplicationName(APPLICATION_NAME); 
$client->setScopes(SCOPES); 
$client->setAuthConfigFile(CLIENT_SECRET_PATH); 
$client->setState($userId); 
$client->setAccessType('offline'); 

// set the accessToken 
$client->setAccessToken($accessToken); 

$googleOAuth = new Google_Service_Oauth2($client); 
$result = $googleOAuth->userinfo->get(); 

var_dump($result); 

$結果の。

スニペット=

["locale"]=> 
    string(2) "en" 
    ["name"]=> 
    string(11) "Fred Flintstone" 
    ["email"]=> 
    NULL 
    ["id"]=> 
    string(21) "1111111111111111111111" 
    ["picture"]=> 
    string(92) "https://bla blabla/photo.jpg" 
    ["verifiedEmail"]=> 
    NULL 

誰もが「なぜ」私は私は本当に旧姓、メールを返して届かないにいくつかの光を当てることができますそれです。または、私がすでに試したことのないいくつかの提案?

おかげで、

ジョン

+0

見つかり以下のhttpsになります://開発者。 google.com/drive/v3/reference/about/get#http-requestとメールアドレスを取得します具体的なリクエストは、GET https://www.googleapis.com/drive/v3/about?fields=user&key={YOUR_API_KEY}です。 $ service = new Google_Service_Drive($ client)などの情報をセットアップして取得する方法がありますか(私はPHPを使用しています)。 $ about = $ service-> about-> get(); – JMoskwa

+0

私はそれを試み、エラーが返ってきます - PHP致命的なエラー: 'GET https://www.googleapis.com/drive/v3/about :(403)不十分な権限を呼び出す際にエラーが発生しました'というメッセージで、 'Google_Service_Exception' /var/treering/html/api/google-api-php-client/src/Google/Http/REST.php:110 – JMoskwa

+0

このスコープ「https://www.googleapis.com/auth/drive」を追加してください。 apps.readonly'をあなたのコードに追加します。この[あなたの質問](http://stackoverflow.com/questions/22896018/google-php-client-api-insufficient-permission)の回答のように。デベロッパーコンソールで* Drive API *と* Google Drive API *を有効にしてください。 – KENdi

答えて

0

が私のために働いた答えを見つけることが...私は今、電子メールアドレスを取得する上で、元のコードに次のように、私の変更があります。

は助け&の電子メールアドレスに

$googleOAuth = new Google_Service_Oauth2($client); 
$email = $googleOAuth->userinfo->get()->email; 

感謝を取得し、これらのスコープ

define('SCOPES', implode(' ', array(
    Google_Service_Drive::DRIVE, 
    Google_Service_Drive::DRIVE_FILE, 
    Google_Service_Oauth2::USERINFO_EMAIL) 
)); 

//を使用し

ジョン

関連する問題