Ok greg, i did as you said if i do print_r($xml) i get this :
SimpleXMLElement Object ( [edited] => 2009-03-23T21:51:40.519Z [email] => SimpleXMLElement Object ( [...@attributes] => Array ( [rel] => http://schemas.google.com/g/2005#other [address] => [email protected] [primary] => true ) ) [groupMembershipInfo] => Array ( [0] => SimpleXMLElement Object ( [...@attributes] => Array ( [deleted] => false [href] => http://www.google.com/m8/feeds/groups/varzariu.nicolae%40gmail.com/base/6 ) ) [1] => SimpleXMLElement Object ( [...@attributes] => Array ( [deleted] => false [href] => http://www.google.com/m8/feeds/groups/varzariu.nicolae%40gmail.com/base/2842a9b10e7d48bb ) ) ) ) SimpleXMLElement Object ( [edited] => 2009-03-23T21:36:09.859Z [email] => SimpleXMLElement Object ( [...@attributes] => Array ( [rel] => http://schemas.google.com/g/2005#other [address] => [email protected] [primary] => true ) ) [groupMembershipInfo] => Array ( [0] => SimpleXMLElement Object ( [...@attributes] => Array ( [deleted] => false [href] => http://www.google.com/m8/feeds/groups/varzariu.nicolae%40gmail.com/base/6 ) ) [1] => SimpleXMLElement Object ( [...@attributes] => Array ( [deleted] => false [href] => http://www.google.com/m8/feeds/groups/varzariu.nicolae%40gmail.com/base/2842a9b10e7d48bb ) ) ) ) Now this $xml i need to parse it as array to get the values right? How can i do that? Thanks a lot for helping. On Mar 24, 9:02 pm, Greg Levine <[email protected]> wrote: > Yes, all of the contact data is returned with the feed. I think you > actually want to run your main foreach routine on $feed, not the XML > children. As I understand it, getFeed returns an array of strings > containing XML, and each element of the array is its own XML string > for an individual contact. So, you have to extract from the array each > XML string describing a contact before you convert a string into an > XML object. Here's how my code is structured: > > $feed = $gdata->getFeed( $query ); > > foreach( $feed as $entry ) > { > $xml = new SimpleXMLElement( $entry->getXML() ); > > . . . > > } > > Also, I'm using an XML-to-Array parser that I found last year in place > of SimpleXML. I would recommend sticking with SimpleXML since it is a > legitimate extension of PHP, but in case you want to see the > alternative, you can find it > athttp://mysrc.blogspot.com/2007/02/php-xml-to-array-and-backwards.html. > > Hope that helps. > > Greg > > On Mar 24, 1:53 pm, darie nicolae <[email protected]> wrote: > > > Yep everything is clear, my next question is : > > > I did the query, this is the code : > > > $query = new Zend_Gdata_Query("http://www.google.com/m8/feeds/ > > contacts/" . $username . "/full/?group=" . $grouplink . '&v=2'); > > $feed = $gdata->getFeed( $query ); > > > $xml = new SimpleXMLElement($feed->getXML()); > > $entries = $xml->children('http://www.w3.org/2005/Atom'); > > > foreach ($entries->entry as $entry ) { > > > print_r($entry); > > > The array of entry contains only the name of the contact, but not the > > address email and the other details. > > Should they be returned on this query, or i need to do another query > > based on the contacts name? > > > Thanks for your help. > > > Regards, > > Darie Nicolae > > > On Mar 24, 7:19 pm, Greg Levine <[email protected]> wrote: > > > > Sorry for not clarifying. If you just recently downloaded Zend Gdata, > > > then you should have the latest version. You can read about specifying > > > a version > > > athttp://code.google.com/apis/contacts/docs/2.0/developers_guide_protoc.... > > > > I read "every request that you send using the Contacts Data API should > > > specify version 2 of the API" to mean that while all functionality of > > > version 1 remains in version 2, you need to specify that you are using > > > version 2 in order to take advantage of the enhancements the most > > > recent version provides. If anyone out there knows better than me (and > > > I'm sure there are plenty), then please correct me if I'm wrong. > > > > While the HTTP header method is preferred, I wasn't doing anything too > > > complex. So, I just tacked "v=2" onto the end of all of my query > > > URI's. In your case, it would look like the following: > > > > $query = new Zend_Gdata_Query( "http://www.google.com/m8/feeds/ > > > contacts/default/full?group=http://www.google.com/m8/feeds/groups/user > > > %40gmail.com/base/2842a9b10e7d48bb&v=2" ); > > > > Notice the "&v=2" after the group query string value? That's all it > > > takes to specify version 2. > > > > Greg > > > > On Mar 24, 10:35 am, darie nicolae <[email protected]> wrote: > > > > > Hey Greg, > > > > > Thanks for replying so fast. By version 2 you mean the version two of > > > > the Zend Gdata? > > > > > On Mar 24, 4:24 pm, Greg Levine <[email protected]> wrote: > > > > > > darie nicolae, > > > > > > You're just a little off with your contacts query. All you need to do > > > > > is change "groups" to "contacts" in the URI. When you query for > > > > > groups, you are telling the API that you want to look for a groups > > > > > feed. To query for contacts, you need to tell the API that you want to > > > > > look for a contacts feed. You should leave the group query parameter > > > > > URI exactly as is. > > > > > > Also, note that I had more success with version 2 requests. For one > > > > > thing, I think the groups query required version 2. And for another, > > > > > you don't need to specify max results, since that property doesn't > > > > > seem to exist in version 2. > > > > > > Best of luck, > > > > > Greg > > > > > > On Mar 23, 6:18 pm, darie nicolae <[email protected]> wrote: > > > > > > > Hello, i have one question regarding the same topic. After i made a > > > > > > query to get the groups i got something like this : > > > > > > >http://www.google.com/m8/feeds/groups/user%40gmail.com/base/2842a9b10... > > > > > > > Now in order to get the contacts from this group, the query needs to > > > > > > be : > > > > > > > $query = new > > > > > > Zend_Gdata_Query("http://www.google.com/m8/feeds/groups/ > > > > > > default/full/?group=http://www.google.com/m8/feeds/groups/user > > > > > > %40gmail.com/base/2842a9b10e7d48bb"); > > > > > > > or it should be directly : > > > > > > Zend_Gdata_Query("http://www.google.com/m8/ > > > > > > feeds/groups/user%40gmail.com/base/2842a9b10e7d48bb"); ? > > > > > > > I dont get any response in both ways. > > > > > > > On Mar 23, 5:55 pm, cwood <[email protected]> wrote: > > > > > > > > Greg- > > > > > > > > Try using the whole group id (url-encoded) in your query, like > > > > > > > this: > > > > > > > >http://www.google.com/m8/feeds/contacts/user%40gmail.com/full/?group=... > > > > > > > > Regards, > > > > > > > Charlie > > > > > > > Spanning Sync > > > > > > > > On Mar 23, 10:25 am, Greg Levine <[email protected]> wrote: > > > > > > > > > Okay, it's been two days of trying a number of different things > > > > > > > > to > > > > > > > > make this work, but I can't seem to figure it out. (Note: I'm > > > > > > > > using > > > > > > > > PHP.) > > > > > > > > > I'm able to retrieve a list of groups without any trouble. > > > > > > > > Then, using > > > > > > > > a group ID that is returned, I want to query for the contacts > > > > > > > > in that > > > > > > > > group. Let's say that group ID > > > > > > > > ishttp://www.google.com/m8/feeds/groups/user%40gmail.com/base/6. > > > > > > > > I may need to do some work on the URI to make sure the query > > > > > > > > string is > > > > > > > > properly formed, but the code I have (so far) is: > > > > > > > > > try > > > > > > > > { > > > > > > > > $gdata = new Zend_Gdata( $httpClient ); > > > > > > > > $query = new Zend_Gdata_Query( > > > > > > > > "http://www.google.com/m8/feeds/ > > > > > > > > contacts/user%40gmail.com/full/?group=6&v=2" ); // I've tried it > > > > > > > > without the "v" query parameter too. > > > > > > > > $feed = $gdata->getFeed( $query ); > > > > > > > > print_r( feed );} > > > > > > > > > catch( Exception $e ) > > > > > > > > { > > > > > > > > echo( $e->getMessage() ); > > > > > > > > > } > > > > > > > > > It would seem that would work because I can replace the > > > > > > > > Zend_Gdata_Query parameter with "http://www.google.com/m8/feeds/ > > > > > > > > contacts/user%40gmail.com/full" and print a complete list of my > > > > > > > > contacts, without any restraints or restrictions. So, I'm not > > > > > > > > really > > > > > > > > sure what I'm doing differently. Or, what I'm supposed to do > > > > > > > > differently to print a list of contacts from a specific group. > > > > > > > > I've > > > > > > > > spent a lot of time, specifically > > > > > > > > withhttp://code.google.com/apis/contacts/docs/2.0/reference.html#Parameters, > > > > > > > > trying to come up with a solution. But, it's been to no avail. > > > > > > > > Using > > > > > > > > the above code, I keep receiving "Expected response code 200, > > > > > > > > got 400 > > > > > > > > Invalid value for group parameter: 6" as the exception. Using > > > > > > > > variations, I've also received "404 Group not found" on > > > > > > > > occasion. Any > > > > > > > > help is much is appreciated. > > > > > > > > > Thanks, > > > > > > > > > Greg > > > > > > > > > On Mar 21, 2:29 am, Greg Levine <[email protected]> wrote: > > > > > > > > > > Sorry for cluttering up this discussion group. I was able to > > > > > > > > > figure > > > > > > > > > out the answer. > > > > > > > > > > It turns out that I only need to specify version 2 of the API > > > > > > > > > in the > > > > > > > > > query. > > > > > > > > > > $query = new Zend_Gdata_Query( > > > > > > > > > "http://www.google.com/m8/feeds/groups/ > > > > > > > > > default/full?v=2" ); > > > > > > > > > > And once I was using version 2, I had to remove the > > > > > > > > > setMaxResults > > > > > > > > > line. That did it. > > > > > > > > > > On another note, does anyone know how to get the e-mail > > > > > > > > > address and/or > > > > > > > > > nickname of the authenticated user when using AuthSub? > > > > > > > > > > Thanks again, > > > > > > > > > > Greg > > > > > > > > > > On Mar 20, 11:51 pm, Greg Levine <[email protected]> > > > > > > > > > wrote: > > > > > > > > > > > I am trying to extract all contacts from a specified group, > > > > > > > > > > with the > > > > > > > > > > goal of firing off an e-mail to each address in the group. > > > > > > > > > > I'm > > > > > > > > > > starting by displaying a page that lists the authenticated > > > > > > > > > > user's > > > > > > > > > > groups. When the user clicks on a group, he/she will see a > > > > > > > > > > form in > > > > > > > > > > which the e-mail content will be typed. Upon submitting the > > > > > > > > > > e-mail, > > > > > > > > > > each of the contacts in the selected group will be sent the > > > > > > > > > > e-mail > > > > > > > > > > using PHP's mail function. > > > > > > > > > > > I've successfully authenticated a user using AuthSub and am > > > > > > > > > > able to > > > > > > > > > > produce a list of contacts by querying > > > > > > > > > > "http://www.google.com/m8/feeds/ > > > > > > > > > > contacts/default/full" with the Zend_Gdata_Query method. > > > > > > > > > > However, I am > > > > > > > > > > unable to produce a list of the groups associated with the > > > > > > > > > > authenticated account. The code I am trying is as follows: > > > > > > > > > > > $gdata = new Zend_Gdata( $httpClient ); > > > > > > > > > > $query = new Zend_Gdata_Query( > > > > > > > > > > "http://www.google.com/m8/feeds/groups/ > > > > > > > > > > default/full" ); > > > > > > > > > > $query->setMaxResults( 100 ); > > > > > > > > > > $feed = $gdata->getFeed( $query ); > > > > > > > > > > > foreach( $feed as $entry ) > > > > > > > > > > { > > > > > > > > > > $xml= $entry->getXML(); > > > > > > > > > > print_r( $xml ); > > > > > > > > > > > } > > > > > > > > > > > I don't see any errors. Just a blank page. Nothing is > > > > > > > > > > returned. Any > > > > > > > > > > ideas as to why > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Contacts API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-contacts-api?hl=en -~----------~----~----~----~------~----~------~--~---
