Я хочу получить доступ к нашей учетной записи Google Analytics, используя новую версию v3.0, но, похоже, из всего, что я прочитал, чтобы получить действительный токен доступа, пользователь должен войти в систему.
Мы хотим получить прямой доступ к нашей собственной учетной записи, а не к клиенту в зависимости от их учетной записи. Как это сделать на PHP без необходимости отправки браузера на страницу входа в Google? Нет ли прямой аутентификации API для v3.0?
РЕДАКТИРОВАТЬ
Это, по-видимому, единственный метод доступа к API без взаимодействия с конечным пользователем, который они называют «Server to Server»:
https://developers.google.com/accounts/docs/OAuth2ServiceAccount
EDIT 2
Похоже, это невозможно сделать? ; (
Предупреждение: очень немногие API Google в настоящее время поддерживают учетные записи службы. В настоящее время учетные записи служб поддерживаются следующими службами разработчика Google:
- Google Cloud Storage
- Google Prediction API
- Google Сократ URL
- Сервер авторизации Google OAuth 2.0
ИЗМЕНИТЬ 3
Кажется, что решение есть, когда я вхожу один раз, а затем использую «Обновить токены», чтобы получить доступ без дополнительного входа пользователя.
Я в конечном итоге использовал токены обновления, они отлично работают. Я получил маркер 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);