2016-04-08 3 views
0

Я новичок в API Google и хотел бы использовать API-интерфейс People для получения всех контактов пользователя. Он работает, я могу подтвердить подлинность пользователя, и я называю People API следующим образом:Как читать данные контакта, возвращенные API Google People, используя PHP

$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], чтобы я мог получить [соединения].

+0

Возможный дубликат [Loop через PHP массива] (http://stackoverflow.com/вопросы/4414623/проходной-ан-массив PHP) – DaImTo

ответ

0

У меня такие же проблемы, как и вы, документация на сайте разработчика 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/>"); 
} 
Смежные вопросы