-->

How to get the user 'contactid' using goog

2019-02-27 23:03发布

问题:

I am trying to fetch user contacts with all user details uaing the google API 3.0. I am able to get the JSON response with the details of the user.

$url = 'https://www.google.com/m8/feeds/contacts/default/full?max-results='.$max_results.'&alt=json&v=3.0&oauth_token='.$accesstoken;

The result is

   [entry] => Array
            (
                [0] => Array
                    (
                        [id] => Array
                            (
                                [$t] => http://www.google.com/m8/feeds/contacts/sfdhitdf1%40gmail.com/base/1
                            )

                        [gd$etag] => "RXc7fTVSLit7I2A9XRZaEkoLRAw."
                        [updated] => Array
                            (
                                [$t] => 2014-08-29T00:16:24.905Z
                            )

                        [app$edited] => Array
                            (
                                [xmlns$app] => http://www.w3.org/2007/app
                                [$t] => 2014-08-29T00:16:24.905Z
                            )

                        [category] => Array
                            (
                                [0] => Array
                                    (
                                        [scheme] => http://schemas.google.com/g/2005#kind
                                        [term] => http://schemas.google.com/contact/2008#contact
                                    )

                            )

                        [title] => Array
                            (
                                [$t] => abc
                            )

                        [link] => Array
                            (
                                [0] => Array
                                    (
                                        [rel] => http://schemas.google.com/contacts/2008/rel#photo
                                        [type] => image
                                        [href] => https://www.google.com/m8/feeds/photos/media/sachdfwdfd%40gmail.com/1?v=3.0
                                        [gd$etag] => "VWVIH3oyWit7I2B0UBRURzwNBWM8ODs8cSk."
                                    )

                                [1] => Array
                                    (
                                        [rel] => self
                                        [type] => application/atom+xml
                                        [href] => https://www.google.com/m8/feeds/contacts/sachitdff%40gmail.com/full/1?v=3.0
                                    )

                                [2] => Array
                                    (
                                        [rel] => edit
                                        [type] => application/atom+xml
                                        [href] => https://www.google.com/m8/feeds/contacts/sachidtfd%40gmail.com/full/1?v=3.0
                                    )

                            )

                        [gd$name] => Array
                            (
                                [gd$fullName] => Array
                                    (
                                        [$t] => abc xyz 
                                    )

                                [gd$givenName] => Array
                                    (
                                        [$t] => abc
                                    )

                                [gd$familyName] => Array
                                    (
                                        [$t] => xyz
                                    )

                            )

                        [gd$email] => Array
                            (
                                [0] => Array
                                    (
                                        [address] => abi9@gmail.com
                                        [primary] => true
                                        [rel] => http://schemas.google.com/g/2005#other
                                    )

                            )

                        [gContact$website] => Array
                            (
                                [0] => Array
                                    (
                                        [href] => http://www.google.com/profiles/104048264070958665151
                                        [rel] => profile
                                    )

                            )

                        [gContact$groupMembershipInfo] => Array
                            (
                                [0] => Array
                                    (
                                        [deleted] => false
                                        [href] => http://www.google.com/m8/feeds/groups/sachitaware

                            )

                    )

But here I dont get the contact image of the user.The documentation says I need a contact id for getting the photo,but I dont get a contact id in the response above.How can I get the contact id of the user and subsequently his contact photo?

I have authorized the app using oauth 2.0 and apart from image I get most of the details of the contact.

EDIT: I tried this way from the documentation and it works,but it returns the binary image instead of the image URL and I have to send another request to get the image.

 $url1   ='https://www.google.com/m8/feeds/photos/media/{useremail}/13444?       v=3.0&oauth_token='.$accesstoken;
 $xmlresponse1 =  curl($url1);

To display the image:

 <img src="data:image/*;base64,<?php echo base64_encode($xmlresponse1); ?> />

Can't I get the contact image URL something like facebook returns?

回答1:

According the documentation, contactIid is returned in the contact entry URL returned by the API:

http://www.google.com/m8/feeds/contacts/<userEmail>/base/<contactId>

So, giving your sample:

http://www.google.com/m8/feeds/contacts/sfdhitdf1%40gmail.com/base/1

We have these values:

userEmail: sfdhitdf1@gmail.com
contactId: 1