如何使用PHP读取Google People API返回的联系人数据


How to read the contact data as returned by the Google People API using PHP

我是google API的新手,希望使用People API获取用户的所有联系人。它工作,我可以验证用户,我调用人民API如下:

$contacts = $peopleService->people_connections->listPeopleConnections('people/me');
  foreach ($contacts as $contactItem) {
  $this->print_r2($contactItem);
  } 

但我获得了一个类型为Google_Service_People_ListConnectionsRespone:的对象

Google_Service_People_ListConnectionsResponse Object
(
[collection_key:protected] => connections
[internal_gapi_mappings:protected] => Array
    (
    )
[connectionsType:protected] => Google_Service_People_Person
[connectionsDataType:protected] => array
[nextPageToken] => 
[nextSyncToken] => CPDp4aW_KhIBMRjuEioECAAQAQ
[modelData:protected] => Array
    (
        [connections] => Array
            (
                [0] => Array
                    (
                        [resourceName] => people/c3422388075840417635
                        [etag] => AgD+4rTZF6o=
                        [metadata] => Array
                            (
                                [sources] => Array
                                    (
                                        [0] => Array
                                            (
                                                [type] => CONTACT
                                                [id] => 2fc3d288898002f63
                                                [etag] => #AgD+4rTZF6o=
                                            )
                                    )
                                [deleted] => 1
                                [objectType] => PERSON
                            )
                    )
                [1] => Array
                    (
                        [resourceName] => people/107483842333347794768
                        [etag] => btQbbIVcGJ4=
                        [metadata] => Array
                            (
                                [sources] => Array
                                    (
                                        [0] => Array
                                            (
                                                [type] => CONTACT
                                                [id] => 715e58866e51e374
                                                [etag] => #TW+s5999ANk=
                                            )
                                        [1] => Array
                                            (
                                                [type] => PROFILE
                                                [id] => 107483842299147794768
                                            )
                                    )
                                [objectType] => PERSON
                            )
                        [names] => Array
                            (
                                [0] => Array
                                    (
                                        [metadata] => Array
                                            (
                                                [primary] => 1
                                                [source] => Array
                                                    (
                                                        [type] => CONTACT
                                                        [id] => 715e50000e51e374
                                                    )
                                            )
                                        [displayName] => xxxxxxxx
                                        [familyName] => xxxxxx
                                        [givenName] => xxxxxxxxx
                                        [displayNameLastFirst] => xxxxx, xxxxx
                                    )
                                [1] => Array
                                    (
                                        [metadata] => Array
                                            (
                                                [source] => Array
                                                    (
                                                        [type] => PROFILE
                                                        [id] => *************************
                                                    )
                                            )
                                        [displayName] => xxxxxxxxxx
                                        [familyName] => xxxxx
                                        [givenName] => xxxxxxx
                                        [displayNameLastFirst] => xxxxx, xxxxxxx
                                    )
                            )

我的问题有点愚蠢:我如何使用PHP客户端库读取[modelData:protected]数组,这样我就可以获得结果的[connections]。

我和你有同样的问题,谷歌开发者网站上的文档似乎不正确,因为repo明确声明使用v1分支。

到目前为止,这就是我所破解的,这是一个糟糕的代码,但希望它能帮助你:

$connections = $service->people_connections->listPeopleConnections('people/me', array(
    'pageSize' => 500,
    'requestMask.includeField' => 'person.names,person.phoneNumbers'
));
foreach($connections->connections as $contact){
    echo("{$contact[names][0][displayName]}<br/>");
}