public function FetchContacts($credential = null) { if (!$credential) { $credential = $this->_credential; } else { $this->_credential = $credential; } $user = $credential['username']; $pass = $credential['password']; try { // perform login and set protocol version to 3.0 $client = \Zend_Gdata_ClientLogin::getHttpClient($user, $pass, 'cp'); $gdata = new \Zend_Gdata($client); $gdata->setMajorProtocolVersion(3); // perform query and get result feed $query = new \Zend_Gdata_Query('http://www.google.com/m8/feeds/contacts/default/full'); $query->setParam("max-results", 10000); $feed = $gdata->getFeed($query); // parse feed and extract contact information // into simpler objects $results = array(); foreach ($feed as $entry) { $xml = simplexml_load_string($entry->getXML()); $obj = $this->DatatoContact($entry, $xml); $results[] = $obj; } } catch (Exception $e) { var_dump($e->getMessage()); return; } return $results; }
require_once( 'Zend/Loader.php' ); Zend_Loader::loadClass( 'Zend_Gdata' ); Zend_Loader::loadClass( 'Zend_Gdata_ClientLogin' ); Zend_Loader::loadClass( 'Zend_Http_Client' ); Zend_Loader::loadClass( 'Zend_Gdata_Query' ); Zend_Loader::loadClass( 'Zend_Gdata_Feed' ); // Perform source login $source_client = Zend_Gdata_ClientLogin::getHttpClient( $source_user, $source_pass, 'cp' ); $source_gdata = new Zend_Gdata( $source_client ); $source_gdata->setMajorProtocolVersion( 3 ); // Perform destination login $dest_client = Zend_Gdata_ClientLogin::getHttpClient( $dest_user, $dest_pass, 'cp' ); $dest_gdata = new Zend_Gdata( $dest_client ); $dest_gdata->setMajorProtocolVersion( 3 ); // Fetch all destination contacts message( 'Fetching all "My Contacts" from destination account...' ); $dest_query = new Zend_Gdata_Query( 'http://www.google.com/m8/feeds/contacts/default/full' ); $dest_query->maxResults = 99999; $dest_query->setParam( 'group', 'http://www.google.com/m8/feeds/groups/' . urlencode($dest_user) . '/base/6' ); // "My Contacts" only $dest_feed = $dest_gdata->getFeed( $dest_query ); message( $dest_feed->totalResults . ' contacts found.' ); // Clear out all existing contacts if ( (string) $dest_feed->totalResults > 0 ) { message( 'Clearing all "My Contacts" from destination account...' ); foreach ( $dest_feed as $entry ) { if ( !$editlink = $entry->getEditLink() )