2012-11-23 530 views
0

我實現Gmail聯繫人使用谷歌獲取的API-PHP-客戶端0.6.0獲取Gmail聯繫人PHP谷歌的API-PHP-客戶端0.6.0

if ($client->getAccessToken()) { 
    $req = new Google_HttpRequest("https://www.google.com/m8/feeds/contacts/default/full?max-results=9999&alt=json"); 
    $val = $client->getIo()->authenticatedRequest($req); 
    // The contacts api only returns XML responses. 
    //$response = json_encode(simplexml_load_string($val->getResponseBody())); 
    print_r(json_decode($val->getResponseBody())) ; 

    // The access token may have been updated lazily. 
    $_SESSION['token'] = $client->getAccessToken(); 
} 

本亞姆的HttpRequest獲取用戶詳細結果如下

[0] => stdClass Object 
        (
         [id] => stdClass Object 
          (
           [$t] => http://www.google.com/m8/feeds/contacts/sivagopaltech%40gmail.com/base/1301bd0ce878b5 
          ) 

         [updated] => stdClass Object 
          (
           [$t] => 2011-10-10T04:40:56.311Z 
          ) 

         [category] => Array 
          (
           [0] => stdClass Object 
            (
             [scheme] => http://schemas.google.com/g/2005#kind 
             [term] => http://schemas.google.com/contact/2008#contact 
            ) 

          ) 

         [title] => stdClass Object 
          (
           [type] => text 
           [$t] => 
          ) 

         [link] => Array 
          (
           [0] => stdClass Object 
            (
             [rel] => http://schemas.google.com/contacts/2008/rel#edit-photo 
             [type] => image/* 
             [href] => https://www.google.com/m8/feeds/photos/media/sivagopaltech%40gmail.com/1301bd0ce878b5/1B2M2Y8AsgTpgAmY7PhCfg 
            ) 

           [1] => stdClass Object 
            (
             [rel] => self 
             [type] => application/atom+xml 
             [href] => https://www.google.com/m8/feeds/contacts/sivagopaltech%40gmail.com/full/1301bd0ce878b5 
            ) 

           [2] => stdClass Object 
            (
             [rel] => edit 
             [type] => application/atom+xml 
             [href] => https://www.google.com/m8/feeds/contacts/sivagopaltech%40gmail.com/full/1301bd0ce878b5/1318221656311001 
            ) 

          ) 

         [gd$email] => Array 
          (
           [0] => stdClass Object 
            (
             [rel] => http://schemas.google.com/g/2005#other 
             [address] => [email protected] 
             [primary] => true 
            ) 

          ) 

        ) 

其中$ T和其他人在我看來,在這種情況下,IAM獲取用戶emailids

當我改變了代碼和HttpRequest的意想不到的IAM獲取用戶下方名稱不僅沒有EMAILID

if ($client->getAccessToken()) { 
    $req = new Google_HttpRequest("https://www.google.com/m8/feeds/contacts/default/full?max-results=9999"); 
    $val = $client->getIo()->authenticatedRequest($req); 
    // The contacts api only returns XML responses. 
    $response = json_encode(simplexml_load_string($val->getResponseBody())); 
    print_r(json_decode($response)) ; 

    // The access token may have been updated lazily. 
    $_SESSION['token'] = $client->getAccessToken(); 
} 

和用戶詳細格式是這樣

[title] => 96 76 36 78 07 chakri  // username 
        [link] => Array 
         (
          [0] => stdClass Object 
           (
            [@attributes] => stdClass Object 
             (
              [rel] => http://schemas.google.com/contacts/2008/rel#edit-photo 
              [type] => image/* 
              [href] => https://www.google.com/m8/feeds/photos/media/sivagopaltech%40gmail.com/826b6c0fa89181/a9haUsi43SXQrgy78Gjg4Q 
             ) 

           ) 

          [1] => stdClass Object 
           (
            [@attributes] => stdClass Object 
             (
              [rel] => http://schemas.google.com/contacts/2008/rel#photo 
              [type] => image/* 
              [href] => https://www.google.com/m8/feeds/photos/media/sivagopaltech%40gmail.com/826b6c0fa89181 
             ) 

           ) 

          [2] => stdClass Object 
           (
            [@attributes] => stdClass Object 
             (
              [rel] => self 
              [type] => application/atom+xml 
              [href] => https://www.google.com/m8/feeds/contacts/sivagopaltech%40gmail.com/full/826b6c0fa89181 
             ) 

           ) 

          [3] => stdClass Object 
           (
            [@attributes] => stdClass Object 
             (
              [rel] => edit 
              [type] => application/atom+xml 
              [href] => https://www.google.com/m8/feeds/contacts/sivagopaltech%40gmail.com/full/826b6c0fa89181/1349307874947993 
             ) 

           ) 

         ) 

       ) 

任何一個可以建議我我如何才能避免這些$ T變量或如何讓EMAILID與第二的HttpRequest

回答

1

問題是simplexml如何格式化響應。它會刪除電子郵件字段。將「?alt = json」添加到api調用的結尾,它將返回一個json。 json_decode響應,你將有一個很好的PHP對象與電子郵件