Я пытаюсь перенести старый google api на новый, поэтому я могу получить данные аналитики Google. Я пытаюсь с этим примером, но он вызывает эту ошибку
Неустранимая ошибка: Class 'Google_Auth_AssertionCredentials' не найден в example.php
- Увеличьте время выполнения в Google App Engine
- Накладки на Google Карты
- Использовать параметр в функции, переданной в google.setOnLoadCallback ();
- Как вставлять и извлекать postBody в метод вставки учетной записи Mirror API с помощью PHP
- Не удалось подключиться к Google cloud SQL. Использование PHP SDK Google
Вот как я пытаюсь:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); require_once 'google-api-php-client/vendor/autoload.php'; //$p12FilePath = '/path/to/key.p12'; $serviceClientId = '395545742105.apps.googleusercontent.com'; $serviceAccountName = '395545742105@developer.gserviceaccount.com'; $scopes = array( 'https://www.googleapis.com/auth/analytics.readonly' ); $googleAssertionCredentials = new Google_Auth_AssertionCredentials( $serviceAccountName, $scopes ); // <- Fatal error here $client = new Google_Client(); $client->setAssertionCredentials($googleAssertionCredentials); $client->setClientId($serviceClientId); $client->setApplicationName("Project"); $analytics = new Google_Service_Analytics($client);
И я выполнил поиск Google_Auth_AssertionCredentials
в библиотеке, которую я загружаю отсюда , и только один результат: upagrading.md
Google_Auth_AssertionCredentials removed use Google_Client::setAuthConfig instead
,
Но как я должен использовать его в контрукторе?
Я тред
$googleAssertionCredentials = new Google_Client::setAuthConfig( $serviceAccountName, $scopes );
С внутренней ошибкой сервера,
Любая идея, что мне здесь не хватает?
Похоже, у вас есть смесь старого и нового ( Google PHP API Client 2.0 ) синтаксиса. Вместо этого сообщение «использовать Google_Client :: setAuthConfig» предназначено для указания используемого метода, но не для того, чтобы его нужно было называть статически.
Он должен выглядеть так:
$client = new Google_Client(); // set the scope(s) that will be used $client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly')); // this is needed only if you need to perform // domain-wide admin actions, and this must be // an admin account on the domain; it is not // necessary in your example but provided for others $client->setSubject('youradmin@example.com'); // set the authorization configuration using the 2.0 style $client->setAuthConfig(array( 'type' => 'service_account', 'client_email' => '395545742105@developer.gserviceaccount.com', 'client_id' => '395545742105.apps.googleusercontent.com', 'private_key' => 'yourkey' )); $analyticsService = new Google_Service_Analytics($client);
Этот синтаксис работает для меня с текущей сборкой на момент написания этой статьи, которая представляет собой 2.0.0-RC2
.
Это решение работает для меня:
В разделе настройки композитора в https://github.com/google/google-api-php-client/blob/master/README.md могут упоминаться обе версии, например:
композитор требует google / apiclient: ^2.0.0@RC Обратите внимание, что документация на developers.google.com относится к V1 этой библиотеки. Если вы хотите использовать более старую версию, вместо этого используйте: composer require google / apiclient: 1. *