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

Похоже, в конце концов, есть решение, поскольку я один раз вхожу в систему, а затем использую "Токены обновления", чтобы продолжать получать доступ без дополнительного входа пользователя.

Author: Sarke, 2012-08-15

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);
 1
Author: Sarke, 2012-12-01 03:08:05