Я хочу реализовать Google Oauth2 в своем проекте. Мои основные цели – доступ к API google-people, чтобы отображать информацию о профиле и привод Google.
Поскольку я новичок в этом, я активировал несколько API-интерфейсов и, самое главное, успел получить информацию. Только API-интерфейс People вызывает у меня проблемы, и я не понимаю почему. Вот что я делаю (я пропускаю всю часть входа).
Определение областей:
$client->addScope("https://www.googleapis.com/auth/drive"); $client->addScope("https://www.googleapis.com/auth/youtube"); $client->addScope("https://www.googleapis.com/auth/contacts"); // this is google-people API $client->addScope("https://www.googleapis.com/auth/plus.login"); $client->addScope("https://www.googleapis.com/auth/userinfo.email"); $client->addScope("https://www.googleapis.com/auth/gmail.readonly");
Вызов API
$dr_service = new Google_Service_Drive($client); $yt_service = new Google_Service_YouTube($client); $ppl_service = new Google_Service_People($client); $plus_service = new Google_Service_Plus($client); $gmail_service = new Google_Service_gmail($client);
Делать запросы
$dr_results = $dr_service->files->listFiles(array('pageSize' => 10)); //returns a list of files $yt_response= $yt_service->search->listSearch('id,snippet', array('maxResults' => 25, 'q' => 'yoda', 'type' => '') );//returns videos of Yoda $plus_results = $plus_service->people->get('me'); // returns my Google+ profile $gmail_results = $gmail_service->users->getProfile('me'); //returns my Gmail profile $ppl_results = $ppl_service->people->get( 'people/me', array('personFields' => 'names,emailAddresses') ); //Error
Как вы можете видеть, работают 4 из 5 запросов. Только запрос «Люди» не работает и возвращает следующее сообщение:
Fatal error: Uncaught Google_Exception: (get) unknown parameter: 'personFields' in C:\xampp\htdocs\gLoginPHP\vendor\google\apiclient\src\Google\Service\Resource.php:147 Stack trace: #0 C:\xampp\htdocs\gLoginPHP\vendor\google\apiclient-services\src\Google\Service\People\Resource\People.php(52): Google_Service_Resource->call('get', Array, 'Google_Service_...') #1 C:\xampp\htdocs\gLoginPHP\gLoginPHP.php(81): Google_Service_People_Resource_People->get('people/me', Array) #2 {main} thrown in C:\xampp\htdocs\gLoginPHP\vendor\google\apiclient\src\Google\Service\Resource.php on line 147
Часть, которую я не понимаю, заключается в том, что этот запрос является точной копией / прошлым из примера, который я нашел в документации: https://developers.google.com/people/v1/read-people
Кто-нибудь понимает, почему?
Большое спасибо!
Похоже, существуют две службы Google_Service_People
и Google_Service_PeopleService
. Google_Service_People
похоже, имеет более старый API, тогда как Google_Service_PeopleService
обновлен. Я свяжусь с разработчиками библиотеки PHP, чтобы выяснить, почему существуют две библиотеки.