使用Zend_GData和Google Contacts API将联系人添加到群组
I have an application using zend_gdata and create contact with the code below.
$doc = new DOMDocument();
$doc->formatOutput = true;
$entry = $doc->createElement('atom:entry');
$entry->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:atom', 'http://www.w3.org/2005/Atom');
$entry->setAttributeNS('http://www.w3.org/2000/xmlns/' , 'xmlns:gd', 'http://schemas.google.com/g/2005');
$doc->appendChild($entry);
// add name element
$name = $doc->createElement('gd:name');
$entry->appendChild($name);
$fullName = $doc->createElement('gd:fullName', htmlentities($data->firstname . ' ' . $data->lastname));
$name->appendChild($fullName);
// insert entry
$entryResult = $gdata->insertEntry($doc->saveXML(), 'http://www.google.com/m8/feeds/contacts/default/full');
Is there a possibility, a function to add a group to the contact just created?
我有一个使用zend_gdata的应用程序并使用下面的代码创建联系人。 p>
$ doc = new DOMDocument();
$ doc-> formatOutput = true;
$ entry = $ doc-> createElement('atom:entry' );
$ entry-> setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:atom','http://www.w3.org/2005/Atom') ;
$ entry-> setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:gd','http://schemas.google.com/g/2005');
$ doc-> appendChild($ entry);
//添加名称元素
$ name = $ doc-> createElement('gd:name');
$ entry-> appendChild( $ name);
$ fullName = $ doc-> createElement('gd:fullName',htmlentities($ data-> firstname。''。$ data-> lastname));
$ name- > appendChild($ fullName);
//插入条目
$ entryResult = $ gdata-> insertEntry($ doc-> saveXML(),'http://www.google.com/m8/ feed / contacts / default / full');
code> pre>
是否有可能将组添加到刚创建的联系人中? p>
DIV>
I have a big class and can't paste it all, you need to put this together somehow
step 1)
get all groups ( http://raiyaraj.wordpress.com/2008/09/17/gmail-gdata-contacts-group-via-proxy/) and find the id of your group or create it ( you can do it with zend framework) if it doesn't exist
step 2)
generate the xml
// create new entry
$doc = new DOMDocument();
$doc->formatOutput = true;
$entry = $doc->createElement('atom:entry');
$entry->setAttributeNS('http://www.w3.org/2000/xmlns/' , 'xmlns:atom', 'http://www.w3.org/2005/Atom');
$entry->setAttributeNS('http://www.w3.org/2000/xmlns/' , 'xmlns:gd', 'http://schemas.google.com/g/2005');
$entry->setAttributeNS('http://www.w3.org/2000/xmlns/' , 'xmlns:gContact', 'http://schemas.google.com/contact/2008');
$doc->appendChild($entry);
...add various stuff....
$name = $doc->createElement('gd:name');
$entry->appendChild($name);
$fullName = $doc->createElement('gd:fullName', $this->name);
$name->appendChild($fullName);
.....
$group = $doc->createElement('gContact:groupMembershipInfo');
$group->setAttribute('deleted' ,'false');
$group->setAttribute('href' ,'http://www.google.com/m8/feeds/groups/' .urlencode($this->email) . '/base/'.$this->group_id);
$entry->appendChild($group);
step 3)
connect to gmail and execute the query
$service = $this->service;
// perform login and set protocol version to 3.0
$client = $service;
$gdata = new Zend_Gdata($client);
$gdata->setMajorProtocolVersion(3);
$entryResult = $gdata->insertEntry($this->getXML(), 'https://www.google.com/m8/feeds/contacts/default/full');
return $entryResult->getLink('edit');
notice that you return the edit link so that if you save it, you can update the contact or or check for modifications
Yes it is possible. Refer the following documentation for the same.
http://code.google.com/apis/contacts/docs/3.0/reference.html#groupMembershipInfo