【问题标题】:(403) Your project does not have access to this feature(403) 您的项目无权访问此功能
【发布时间】:2014-03-27 08:57:12
【问题描述】:

一直在关注有关如何插入网络属性的文档,以便我可以动态创建跟踪代码。目标是将我们的分析转移到谷歌分析中,并在分析下在他们自己的谷歌账户上自动创建客户网站。经过我在网上几乎找不到的东西,似乎这个功能可能被列入白名单。所以我提出这个问题是为了弄清楚天气是否如此。文档很难弄清楚,因为它没有告诉您哪些字段是必需的,字段的含义等。似乎 PHP 库的文档已经过时了。必须更改许多示例代码类名称和方法名称才能使其“工作”。

这是我用来测试此功能的代码 sn-p。

<?php
require_once 'Google/Client.php';
require_once 'Google/Service/Analytics.php';
require_once 'Google/Service/Oauth2.php';

session_start();

$client = new Google_Client();

$client->setClientId('xxxxx');
$client->setClientSecret('xxxxxx');
$client->setRedirectUri('xxxxxxxx');
$client->setDeveloperKey('xxxxxxx');
$client->setScopes(
    array(
          'https://www.googleapis.com/auth/analytics.readonly',
          'https://www.googleapis.com/auth/analytics',
          'https://www.googleapis.com/auth/userinfo.profile',
          'https://www.googleapis.com/auth/analytics.edit',
          'https://www.googleapis.com/auth/analytics.manage.users'
    )
);

$oauth2 = new Google_Service_Oauth2($client);

if (isset($_GET['code'])) {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
  header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}

if (isset($_REQUEST['logout'])) {
  unset($_SESSION['access_token']);
}

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  $client->setAccessToken($_SESSION['access_token']);
}

if (!$client->getAccessToken()) {
  $authUrl = $client->createAuthUrl();

  print "<a class='login' href='$authUrl'>Connect Me!</a>";

} else {
    $analytics = new Google_Service_Analytics($client);

    try {
        $user = $oauth2->userinfo->get();

        $permission = new Google_Service_Analytics_WebpropertyPermissions();
        $permission->setEffective(array('EDIT', 'VIEW'));

        $trackingObject = new Google_Service_Analytics_Webproperty();
        $trackingObject->setAccountId($user['id']);
        //$trackingObject->setDefaultProfileId($user['id']);
        $trackingObject->setId('UA-xxxxx-1');
        $trackingObject->setPermissions($permission);
        $trackingObject->setIndustryVertical('INTERNET_AND_TELECOM');
        $trackingObject->setLevel('STANDARD');
        $trackingObject->setName('xxxxxx');
        $trackingObject->setWebsiteUrl('xxxxxx');

        $analytics->management_webproperties->insert($user['id'], $trackingObject);
        $accounts = $analytics->management_accounts->listManagementAccounts();
        echo '<pre>'; print_r($user); echo '</pre>';
        echo '<pre>'; print_r($accounts); echo '</pre>';
        die();

  } catch (apiServiceException $e) {
    // Error from the API.
    print 'There was an API error : ' . $e->getCode() . ' : ' . $e->getMessage();

  } catch (Exception $e) {
    print 'There was a general error : ' . $e->getMessage();
  }
}

我得到的例外是标题包含的内容。

【问题讨论】:

  • 您是否尝试过使用 API 资源管理器? developers.google.com/analytics/devguides/config/mgmt/v3/… 你说得对,PHP 的文档已经过时了。一个新的正在开发中。
  • 是的,我按照您发送的链接来帮助填写哪些字段。使用他们的测试工具,我会收到“500 后端错误”消息,或者如果我自己调用它,我会收到相同的消息。我有一种感觉,要么缺少参数,要么填写错误。
  • 我在插入用户时遇到了同样的问题,我从来没有让它工作。我认为这将是一个使用 API 浏览器的案例,直到我们确切地找出我们需要发送的内容。
  • 您是否已在您的 Google Analytics(分析)中将 xxxxxxxx@developer.gserviceaccount.com 注册为管理员级别的用户?检查stackoverflow.com/questions/16944933/…
  • @KamranShahid 这是一个不同的错误。但是当我授权使用范围时,我不需要将任何人添加为管理员。是吗?我现在就对其进行测试,看看它是否有所作为。

标签: php google-analytics google-api google-analytics-api google-api-php-client


【解决方案1】:

写操作仍处于测试阶段。在您可以访问此功能之前,您需要请求访问测试版。

Management API 中的写入操作(例如,创建、更新、删除、 网络媒体资源、视图(配置文件)和目标资源的补丁)是 目前作为有限测试版的开发者预览版提供。如果你是 有兴趣使用这些功能,request access to the beta

更新:大约需要 3 周时间才能获得批准。当您获得批准后,您将收到一封来自 Google 的电子邮件,邀请您加入 beta 测试组。

【讨论】:

  • 太棒了!!感谢更新。 :)。你能告诉我他们在哪里提到了批准的持续时间吗?
  • 我申请并在大约 3 周后获得批准。这就是我所知道的一切。它在 beta 测试组中非常安静。如果您赶时间,可以尝试将其发布到 google+ 社区中,其中有一些开发人员。他们可能能够帮助您更快地获得访问权限。但我不能保证任何事情plus.google.com/u/0/communities/110103497213687093818
  • 哦.. 太伤心了。我想知道是否可以以某种方式给他们发电子邮件以加快进程。没关系。非常感谢您的回答并感谢您的跟进。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 2023-03-08
  • 2017-09-15
  • 2017-06-22
  • 2019-02-16
  • 1970-01-01
相关资源
最近更新 更多