2012-03-31 7 views
0

私はZend Gmail Oauth 1.0を使用して、Gmail機能でログインを実装しています。 認証が成功したら、認証されたユーザーのプロファイル、具体的にはユーザーの固有のgmail IDを取得するにはどうすればよいですか?コードは以下の通りです:Zend Gmail Oauth:認証されたユーザープロフィールを取得するには?

$THREE_LEGGED_SCOPES = array('https://mail.google.com/', 
    'https://www.google.com/m8/feeds'); 

$options = array(
     'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER, 
     'version' => '1.0', 
     'consumerKey' => $THREE_LEGGED_CONSUMER_KEY, 
     'consumerSecret' => $THREE_LEGGED_CONSUMER_SECRET_HMAC, 
     'callbackUrl' => getCurrentUrl(), 
     'requestTokenUrl' => 'https://www.google.com/accounts/OAuthGetRequestToken', 
     'userAuthorizationUrl' => 'https://www.google.com/accounts/OAuthAuthorizeToken', 
     'accessTokenUrl' => 'https://www.google.com/accounts/OAuthGetAccessToken' 
    ); 

    if ($THREE_LEGGED_SIGNATURE_METHOD == 'RSA-SHA1') { 
     $options['signatureMethod'] = 'RSA-SHA1'; 
     $options['consumerSecret'] = new Zend_Crypt_Rsa_Key_Private(
      file_get_contents(realpath($THREE_LEGGED_RSA_PRIVATE_KEY))); 
    } else { 
     $options['signatureMethod'] = 'HMAC-SHA1'; 
     $options['consumerSecret'] = $THREE_LEGGED_CONSUMER_SECRET_HMAC; 
    } 

    $consumer = new Zend_Oauth_Consumer($options); 

    /** 
    * When using HMAC-SHA1, you need to persist the request token in some way. 
    * This is because you'll need the request token's token secret when upgrading 
    * to an access token later on. The example below saves the token object 
    * as a session variable. 
    */ 
    if (!isset($_SESSION['ACCESS_TOKEN'])) { 
     if (!isset($_SESSION['REQUEST_TOKEN'])) { 
     // Get Request Token and redirect to Google 
     $_SESSION['REQUEST_TOKEN'] = serialize($consumer->getRequestToken(array('scope' => implode(' ', $THREE_LEGGED_SCOPES)))); 
     $consumer->redirect(); 
     } else { 
     // Have Request Token already, Get Access Token 
     $_SESSION['ACCESS_TOKEN'] = serialize($consumer->getAccessToken($_GET, unserialize($_SESSION['REQUEST_TOKEN']))); 
     header('Location: ' . getCurrentUrl(false)); 
     exit; 
     } 
    } else { 
     // Retrieve mail using Access Token 
     $accessToken = unserialize($_SESSION['ACCESS_TOKEN']); 
    } 

答えて

0

私はあなたに言い聞かせることができません。
Gmailには読み取り専用のAPIがありませんfeed。あなたがそのフィードをしたい場合
しかしスコープURLは次のとおりです。

https://mail.google.com/mail/feed/atom/ 

Google Appsの文脈でGmailアカウントを操作するためのいくつかのAPIのがあります。

関連する問題