Php 使用Google Analytics api获取所有帐户的用户
我在获取帐户的用户列表时遇到问题 如果我把帐号放在try-me页面()中,它就会工作Php 使用Google Analytics api获取所有帐户的用户,php,google-api,google-oauth,google-analytics-api,google-api-php-client,Php,Google Api,Google Oauth,Google Analytics Api,Google Api Php Client,我在获取帐户的用户列表时遇到问题 如果我把帐号放在try-me页面()中,它就会工作 $client=new Google_client(); $client->setAuthConfigFile($\u SERVER['DOCUMENT\u ROOT'.../client\u secrets.json'); $client->addScope(谷歌服务分析::分析管理用户); $client=gaGetClient(); 如果(isset($\会话['access\ u token'])&&$
$client=new Google_client();
$client->setAuthConfigFile($\u SERVER['DOCUMENT\u ROOT'.../client\u secrets.json');
$client->addScope(谷歌服务分析::分析管理用户);
$client=gaGetClient();
如果(isset($\会话['access\ u token'])&&$\会话['access\ u token'])){
$client->setAccessToken($_会话['access_token']);
$analytics=新的Google_服务_分析($client);
//这不管用
$accountUserlinks=$analytics->management_accountUserlinks->listManagementAccountUserLinks('123456');
//这很有效
$man_accounts=$analytics->management_accounts->listManagementAccounts();
$accounts=[];
foreach($MANU账户['items']作为$account){
$accounts[]=['id'=>$account['id'],'name'=>$account['name'];
echo$account['name'].“(“$account['id'.”)”)
;
}
}
我收到了这个错误消息
致命错误:未捕获的异常“Google\u服务\u异常”与
调用GET时出现消息“”错误
:
(403)中的“权限不足”
/home/grant/www/productaudit.hcpservices.co.uk/htdocs/current/google-api-php-client/src/google/Http/REST.php:110
堆栈跟踪:#0
/home/grant/www/productaudit.hcpservices.co.uk/htdocs/current/google-api-php-client/src/google/Http/REST.php(62):
Google_Http_REST::decodeHttpResponse(对象(Google_Http_请求),
对象(Google#u客户端))#1[内部函数]:
Google_Http_REST::doExecute(对象(Google_客户端),
对象(Google_Http_请求))#2
/home/grant/www/productaudit.hcpservices.co.uk/htdocs/current/google-api-php-client/src/google/Task/Runner.php(174):
调用_user_func_数组(数组,数组)#3
/home/grant/www/productaudit.hcpservices.co.uk/htdocs/current/google-api-php-client/src/google/Http/REST.php(46):
Google_Task_Runner->run()#4
/home/grant/www/productaudit.hcpservices.co.uk/htdocs/current/google-api-php-client/src/Goo
在里面
/home/grant/www/productaudit.hcpservices.co.uk/htdocs/current/google-api-php-client/src/google/Http/REST.php
在线110
谁能想到我做错了什么。我认为这是一个范围问题,但我已经说明了我的范围
谢谢
Grant我认为您当前正在验证的用户没有访问该信息的权限?我创建了api访问文件并正在使用该文件。我可以看到Analytics api已启用,是否还有其他我感兴趣的权限?您所说的“创建api访问文件”是什么意思?您用来创建该访问令牌的任何用户都必须具有查看这些用户的权限,我认为他们可能是所有者。我创建了一个项目并添加到analytics api中,然后它给了我一个我在这里使用的json文件-$client->setAuthConfigFile($\u SERVER['DOCUMENT\u ROOT']./client\u secrets.json');-这样做是错误的吗?好的,这与google开发者控制台文件只是标识您的应用程序无关,与经过身份验证的用户授予的权限无关。。与您进行身份验证的用户将为您提供$\u会话['access\u token']),如果该用户没有访问权限,则您将无法看到它。我认为您当前正在进行身份验证的用户没有访问该信息的权限?我创建了api访问文件并正在使用该文件。我可以看到Analytics api已启用,是否还有其他我感兴趣的权限?您所说的“创建api访问文件”是什么意思?您用来创建该访问令牌的任何用户都必须具有查看这些用户的权限,我认为他们可能是所有者。我创建了一个项目并添加到analytics api中,然后它给了我一个我在这里使用的json文件-$client->setAuthConfigFile($\u SERVER['DOCUMENT\u ROOT']./client\u secrets.json');-这样做是错误的吗?好的,这与google开发者控制台文件只是标识您的应用程序无关,与经过身份验证的用户授予的权限无关。。与您进行身份验证的用户将为您提供$\u会话['access\u token']),如果该用户没有访问权限,则您无法看到它。
$client = new Google_Client();
$client->setAuthConfigFile($_SERVER['DOCUMENT_ROOT'] . '/client_secrets.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_MANAGE_USERS);
$client=gaGetClient();
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$analytics = new Google_Service_Analytics($client);
//this doesn't work
$accountUserlinks=$analytics->management_accountUserLinks->listManagementAccountUserLinks('123456');
//this works
$man_accounts = $analytics->management_accounts->listManagementAccounts();
$accounts = [];
foreach ($man_accounts['items'] as $account) {
$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];
echo $account['name'] . " (" . $account['id'] . ")<br/>";
}
}