Google People API — получить список подключений

#php #rest #google-api-php-client #google-people-api

#php #rest #google-api-php-client #google-people-api

Вопрос:

У меня проблема с PHP API Google. Мне нужно получить все контакты пользователя в моем приложении. Я использую официальную библиотеку https://github.com/googleapis/google-api-php-client . Мой код, вдохновленный: https://developers.google.com/people/quickstart/php

 $client->setScopes(
    array(
        Google_Service_PeopleService::CONTACTS,
        Google_Service_PeopleService::CONTACTS_READONLY,
        Google_Service_PeopleService::USERINFO_PROFILE,
        Google_Service_PeopleService::USERINFO_EMAIL,
    )
);
$service_contacts = new Google_Service_PeopleService($client);

$optParams = array(
    'pageSize' => 10,
    'personFields' => 'names,emailAddresses',
);
$results = $service_contacts->people_connections->listPeopleConnections('people/me', $optParams);
if (count($results->getConnections()) == 0) {
    echo "No connections found.<br>";
} else {
    echo "contacts :<br>";
    foreach ($results->getConnections() as $person) {
        if (count($person->getNames()) == 0) {
            echo "No names found for this connection<br>";
        } else {
            $names = $person->getNames();
            $name = $names[0];
            printf("%s<br>", $name->getDisplayName());
        }
    }
}
  

но результат таков

 Google_Service_PeopleService_ListConnectionsResponse {#712 ▼
  #collection_key: "connections"
  #connectionsType: "Google_Service_PeopleService_Person"
  #connectionsDataType: "array"
   nextPageToken: null
   nextSyncToken: null
   totalItems: null
   totalPeople: null
  #internal_gapi_mappings: []
  #modelData: array:1 [▼
    "connections" => []
  ]
  #processed: array:1 [▼
    "connections" => true
  ]
}
  

Я также пытался

 $service_contacts = new Google_Service_People($client);
  

всегда никакого результата, как будто у меня нет контактов.

Имеет ли это смысл для кого-нибудь еще?

Ответ №1:

(Опубликовано от имени автора вопроса).

Я забыл указать адрес электронной почты пользователя :

 $service_contacts->getClient()->setSubject($email); //user Email