PHP Google Analytics API授权错误
我想通过谷歌分析API获取我网站的谷歌分析数据。 首先,我进入开发者控制台,启用了AnalyticsAPI,然后在凭证部分创建了新的ClientID(服务帐户) 现在,这是我的代码PHP Google Analytics API授权错误,php,rest,google-analytics,oauth-2.0,google-analytics-api,Php,Rest,Google Analytics,Oauth 2.0,Google Analytics Api,我想通过谷歌分析API获取我网站的谷歌分析数据。 首先,我进入开发者控制台,启用了AnalyticsAPI,然后在凭证部分创建了新的ClientID(服务帐户) 现在,这是我的代码 include "assets/src/templates/base.php"; require_once 'assets/src/Google/autoload.php'; $client_id = 'xxx.apps.googleusercontent.com'; //Client ID $service_a
include "assets/src/templates/base.php";
require_once 'assets/src/Google/autoload.php';
$client_id = 'xxx.apps.googleusercontent.com'; //Client ID
$service_account_name = 'yyy@developer.gserviceaccount.com'; //Email Address
$key_file_location = 'zzz/key.p12'; //key.p12
echo pageHeader("Service Account Access");
if (strpos($client_id, "googleusercontent") == false
|| !strlen($service_account_name)
|| !strlen($key_file_location)) {
echo missingServiceAccountDetailsWarning();
exit;
}
$client = new Google_Client();
$client->setApplicationName("app");
$service = new Google_Service_Analytics($client);
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array('https://www.googleapis.com/auth/analytics.readonly'),
$key
);
$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
$result = $service->data_ga->get(
'ga:AAA',
'2015-03-03',
'2015-03-03',
'ga:sessions');
?>
其中AAA是我的视图ID。
所以,我的问题是:当我在服务器上访问这个脚本时,它会显示*“致命错误:未捕获异常‘Google_Service_exception’,消息为‘调用GET时出错’。” : (403)用户没有任何Google Analytics帐户 C:\xampp\htdocs\test\assets\src\Google\Http\REST.php:110堆栈跟踪: 0 C:\xampp\htdocs\test\assets\src\Google\Http\REST.php(62):Google\u Http\u REST::decodeHttpResponse(对象(Google\u Http\u请求), 对象(Google#u客户端))#1[内部函数]: Google_Http_REST::doExecute(对象(Google_客户端), 对象(Google_Http_请求))#2 C:\xampp\htdocs\test\assets\src\Google\Task\Runner.php(174): 调用_user_func_数组(数组,数组)#3 C:\xampp\htdocs\test\assets\src\Google\Http\REST.php(46): Google_Task_Runner->run()#4 C:\xampp\htdocs\test\assets\src\Google\Client.php(590): Google_Http_REST::execute(对象(Google_客户端), 对象(Google_Http_请求))#5 C:\xampp\htdocs\test\assets\src\Google\Service\Resource.php(231): Google\u客户端->执行(对象)(Google\u Htt在 C:\xampp\htdocs\test\assets\src\Google\Http\REST.php,第110行“* 有什么建议吗 提前谢谢你 问候,, 戈洛比奇 编辑:我已经尝试过Google Books api,auth工作正常。(我当然在$cred中更改了该链接。关键错误是: (403)用户没有任何Google Analytics帐户 您正在使用服务帐户登录。您需要授予服务帐户访问您的Google analytics帐户的权限 解决方案: 转到google analytics网站。在管理部分,使用服务帐户电子邮件地址添加一个新用户,在帐户级别它必须是帐户级别只给这个新用户阅读权限,这是它真正需要的
然后再试试你的脚本。很有魅力!谢谢!:)