Google Analytics Core Reporting API Версии 3.0 без входа в систему клиента
Я хочу получить доступ к отчетам нашей учетной записи Google Analytics с использованием более новой версии v3.0, но из всего, что я прочитал, кажется, что для получения действительного токена доступа пользователь должен войти в систему.
Мы хотим получить прямой доступ к отчетам о наших собственных учетных записях, а не к отчетам клиентов в зависимости от их учетной записи. Как мы можем сделать это на PHP без необходимости отправлять браузер на страницу входа в Google? Нет ли прямой аутентификации API для v3.0?
РЕДАКТИРОВАТЬ
Похоже, это единственный способ доступа к API без взаимодействия с конечным пользователем, который они называют "Сервер на сервер":
Https://developers.google.com/accounts/docs/OAuth2ServiceAccount
РЕДАКТИРОВАТЬ 2
Похоже, это невозможно сделать? ;(
Предупреждение: В настоящее время очень немногие API Google поддерживают учетные записи служб. Учетные записи служб в настоящее время поддерживаются следующими сервисами Google разработчик услуги:
- Облачное хранилище Google
- API прогнозирования Google
- Сокращение URL-адресов Google
- Сервер авторизации Google OAuth 2.0
РЕДАКТИРОВАТЬ 3
Похоже, в конце концов, есть решение, поскольку я один раз вхожу в систему, а затем использую "Токены обновления", чтобы продолжать получать доступ без дополнительного входа пользователя.
1 answers
В итоге я использовал токены обновления, они работают нормально. Я получил токен oauth с помощью консоли Google api, а затем сохранил его.
Тогда я просто делаю это перед каждым запросом:
require_once 'google-api-php-client/src/apiClient.php';
require_once 'google-api-php-client/src/contrib/apiAnalyticsService.php';;
$client = new apiClient();
$client->setApplicationName('My Analytics');
$client->setClientId($this->client_id);
$client->setClientSecret($this->client_secret);
$client->setDeveloperKey($this->api_key);
$client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));
$client->refreshToken($this->refresh_token);
$this->service = new apiAnalyticsService($client);