What I'm trying to get at the moment is just the gd: email attribute, which is "address =", only from the moment it appears. Which I can get in the xml part, damn it, I can even get any given opinion for everyone, as long as I like it inside the tags, but get the attribute of any given, as in my case. I am completely confused. I used to know how to do this, but for so long I did everything that was not easy to use XML. so I ruined everything for myself.
<?xml version='1.0' encoding='UTF-8'?> <feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gd='http://schemas.google.com/g/2005'> <id> xxxxxxxxxxxxxx@gmail.com </id> <updated>2011-06-30T00:07:48.706Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/contact/2008#contact'/> <title type='text'>Taco Bells Contacts</title> <link rel='alternate' type='text/html' href='http://www.google.com/'/> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full'/> <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full'/> <link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/batch'/> <link rel='self' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full?max-results=5'/> <link rel='next' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full?start-index=6&max-results=5'/> <author> <name>Taco Bell</name> <email> xxxxxxxxxxxxxx@gmail.com </email> </author> <generator version='1.0' uri='http://www.google.com/mate/feeds'>Contacts</generator> <openSearch:totalResults>90</openSearch:totalResults> <openSearch:startIndex>1</openSearch:startIndex> <openSearch:itemsPerPage>5</openSearch:itemsPerPage> <entry> <id>http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/base/0</id> <updated>2010-01-27T00:11:57.430Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/contact/2008#contact'/> <title type='text'>Taco B</title> <link rel='http://schemas.google.com/contacts/2008/rel#edit-photo' type='image/*' href='http://www.google.com/mate/feeds/photos/media/xxxxxxxxxxxxxx%40gmail.com/0/8_XL_JoAPon1k7SNixI2iA'/> <link rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' href='http://www.google.com/mate/feeds/photos/media/xxxxxxxxxxxxxx%40gmail.com/0'/> <link rel='self' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/0'/> <link rel='edit' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/0/1264551117430000'/> <gd:email rel='http://schemas.google.com/g/2005#other' address=' xxxxxxxxxxxxxx@gmail.com ' primary='true'/> </entry> <entry> <id>http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/base/1</id> <updated>2007-08-01T18:02:04.410Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/contact/2008#contact'/> <title type='text'></title> <link rel='http://schemas.google.com/contacts/2008/rel#edit-photo' type='image/*' href='http://www.google.com/mate/feeds/photos/media/xxxxxxxxxxxxxx%40gmail.com/1/1B2M2Y8AsgTpgAmY7PhCfg'/> <link rel='self' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/1'/> <link rel='edit' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/1/1185991324410001'/> <gd:email rel='http://schemas.google.com/g/2005#other' address=' xxxxxxxxxxxxxx@sbcglobal.net ' primary='true'/> </entry> <entry> <id>http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/base/2</id> <updated>2010-01-27T00:11:57.430Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/contact/2008#contact'/> <title type='text'>Steve Sattler</title> <link rel='http://schemas.google.com/contacts/2008/rel#edit-photo' type='image/*' href='http://www.google.com/mate/feeds/photos/media/xxxxxxxxxxxxxx%40gmail.com/2/1B2M2Y8AsgTpgAmY7PhCfg'/> <link rel='self' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/2'/> <link rel='edit' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/2/1264551117430000'/> <gd:email rel='http://schemas.google.com/g/2005#other' address=' xxxxxxxxxxxxxx@yahoo.com ' primary='true'/> </entry> <entry> <id>http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/base/3</id> <updated>2010-01-27T00:11:57.430Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/contact/2008#contact'/> <title type='text'>Michael Montana</title> <link rel='http://schemas.google.com/contacts/2008/rel#edit-photo' type='image/*' href='http://www.google.com/mate/feeds/photos/media/xxxxxxxxxxxxxx%40gmail.com/3/1B2M2Y8AsgTpgAmY7PhCfg'/> <link rel='self' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/3'/> <link rel='edit' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/3/1264551117430000'/> <gd:email rel='http://schemas.google.com/g/2005#other' address=' xxxxxxxxxxxxxx@comcast.net ' primary='true'/> </entry> <entry> <id>http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/base/4</id> <updated>2007-08-01T18:02:04.410Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/contact/2008#contact'/> <title type='text'></title> <link rel='http://schemas.google.com/contacts/2008/rel#edit-photo' type='image/*' href='http://www.google.com/mate/feeds/photos/media/xxxxxxxxxxxxxx%40gmail.com/4/1B2M2Y8AsgTpgAmY7PhCfg'/> <link rel='self' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/4'/> <link rel='edit' type='application/atom+xml' href='http://www.google.com/mate/feeds/contacts/xxxxxxxxxxxxxx%40gmail.com/full/4/1185991324410001'/> <gd:email rel='http://schemas.google.com/g/2005#other' address=' xxxxxxxxxxxxxx@courant.com ' primary='true'/> </entry> </feed>
with code that looks like (this is a whole script (currently))
$user = " xxxxxxxxxxxxxxxxxxx@gmail.com "; $password = "xxxxxxxxxxxx"; // ref: http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html // step 1: login $login_url = "https://www.google.com/accounts/ClientLogin"; $fields = array( 'Email' => $user, 'Passwd' => $password, 'service' => 'cp', // <== contact list service code 'source' => 'test-google-contact-grabber', 'accountType' => 'GOOGLE', ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL,$login_url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS,$fields); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); $returns = array(); foreach (explode("\n",$result) as $line) { $line = trim($line); if (!$line) continue; list($k,$v) = explode("=",$line,2); $returns[$k] = $v; } curl_close($curl); // step 2: grab the contact list $feed_url = "http://www.google.com/m8/feeds/contacts/$user/full?&max-results=5"; $header = array( 'Authorization: GoogleLogin auth=' . $returns['Auth'], ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $feed_url); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); $doc = new DOMDocument(); $doc->load($result); $arrFeeds = array(); foreach ($doc->getElementsByTagName('entry') as $node) { $monkey = $node->getAttribute('{gd:email}'); $itemRSS = array($monkey->nodeValue); array_push($arrFeeds, $itemRSS); } array_unique($arrFeeds);