Google Analytics Core Reporting API Version 3.0 without client login

六月ゝ 毕业季﹏ 提交于 2019-12-09 11:35:02

问题


I want to access our Google Analytics account reporting using the newer v3.0, but it seems from everything that I read that in order to get a valid access token the user must log in.

We want direct access to our own account reporting, and not access a client's depending on their account. How do we accomplish this in PHP without having to send the browser to a Google login page? Is there no straight API authentication for v3.0?

EDIT

This seems to be the only method of accessing the API without end-user interaction, which they call "Server to Server":

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

EDIT 2

Looks like it can't be done? ;(

Warning: Very few Google APIs currently support Service Accounts. Service accounts are currently supported by the following Google developer services:

  • Google Cloud Storage
  • Google Prediction API
  • Google URL Shortener
  • Google OAuth 2.0 Authorization Server

EDIT 3

There seems to be a solution after all, as I log in once and then use "Refresh Tokens" to keep gaining access without an additional user login.


回答1:


I did end up using the refresh tokens, they work fine. I got a oauth token by using the google api console, and then saved it.

Then I just do this before each request:

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);


来源:https://stackoverflow.com/questions/11966554/google-analytics-core-reporting-api-version-3-0-without-client-login

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!