Я новичок в Google API и хотел бы использовать People API для получения всех контактов пользователя.
Это работает, я могу аутентифицировать пользователя, и я вызываю People API следующим образом:
$contacts = $peopleService->people_connections->listPeopleConnections('people/me');
foreach ($contacts as $contactItem) {
$this->print_r2($contactItem);
}
Но я получаю объект типа Google_Service_People_ListConnectionsResponse:
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], чтобы я мог получить полученные [соединения].
У меня те же проблемы, что и у вас, документация на сайте разработчиков Google, похоже, неверна, учитывая, что в репозитории явно указано использование ветки 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/>");
}
Других решений пока нет …