私はgoogle-api-php-client-0.6.0を使用してGmailの連絡先フェッチを実装しています
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] => jagadeesh.miriyala@gmail.com
[primary] => true
)
)
)
私の意見では、 $t などは予想外であり、この場合、ユーザーの電子メール ID を取得しています
以下のようにコードと httpRequest を変更すると、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 変数を回避する方法や、2 番目の httprequest で電子メール ID を取得する方法を教えてください。