Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Google Analytics api获取所有帐户的用户_Php_Google Api_Google Oauth_Google Analytics Api_Google Api Php Client - Fatal编程技术网

Php 使用Google Analytics api获取所有帐户的用户

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'])&&$

我在获取帐户的用户列表时遇到问题

如果我把帐号放在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'])&&$\会话['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/>";
      }
}