我使用谷歌分析管理API帐户用户链接:列表
我正在尝试获取帐户用户列表...
try {
$accountUserlinks = $analytics->management_accountUserLinks->listManagementAccountUserLinks('123456');
}
catch (apiServiceException $e) {
print 'There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage();
} catch (apiException $e) {
print 'There was a general API error ' . $e->getCode() . ':' . $e->getMessage();
}
我得到以下错误
{“error”:{“errors”:[{“domain”:“global”,“reason”:“insufficientPermissions”,“message”:“权限不足”}],“code”:403,“message”:“权限不足”}}
在Google Analytics中,我设置了所有权限
编辑协作阅读
例如:
$analytics->management_goals ->listManagementGoals - work
$analytics->management_accountUserLinks>listManagementAccountUserLinks - get 403 insufficientPermissions error
如何修复它?
分析服务提供商
class AnalyticsServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application events.
*/
public function boot()
{
$this->publishes([
__DIR__.'/../config/analytics.php' =>
config_path('analytics.php'),
]);
}
/**
* Register the service provider.
*/
public function register()
{
$this->mergeConfigFrom(__DIR__.'/../config/analytics.php',
'analytics');
$this->app->bind(AnalyticsClient::class, function () {
$analyticsConfig = config('analytics');
return
AnalyticsClientFactory::createForConfig($analyticsConfig);
});
$this->app->bind(Analytics::class, function () {
$analyticsConfig = config('analytics');
$this->guardAgainstInvalidConfiguration($analyticsConfig);
$client = app(AnalyticsClient::class);
return new Analytics($client, $analyticsConfig['view_id']);
});
$this->app->alias(Analytics::class, 'laravel-analytics');
}
protected function guardAgainstInvalidConfiguration(array
$analyticsConfig = null)
{
if (empty($analyticsConfig['view_id'])) {
throw InvalidConfiguration::viewIdNotSpecified();
}
if
(is_array($analyticsConfig['service_account_credentials_json'])) {
return;
}
if (!
file_exists($analyticsConfig['service_account_credentials_json']))
{
throw InvalidConfiguration::credentialsJsonDoesNotExist
($analyticsConfig['service_account_credentials_json']);
}
}
}
分析。php
return [
/*
* The view id of which you want to display data.
*/
'view_id' => env('ANALYTICS_VIEW_ID'),
/*
* Path to the client secret json file. Take a look at the README
of this package
* to learn how to get this file. You can also pass the credentials
as an array
* instead of a file path.
*/
'service_account_credentials_json' =>
storage_path('app/analytics/service-account-credentials.json'),
/*
* The amount of minutes the Google API responses will be cached.
* If you set this to zero, the responses won't be cached at all.
*/
'cache_lifetime_in_minutes' => 60 * 24,
/*
* Here you may configure the "store" that the underlying
Google_Client will
* use to store it's data. You may also add extra parameters that
will
* be passed on setCacheConfig (see docs for google-api-php-
client).
*
* Optional parameters: "lifetime", "prefix"
*/
'cache' => [
'store' => 'file',
],
];
服务帐户凭据
{
"type": "service_account",
"project_id": "buyers-analytic",
"private_key_id": "*****",
"private_key": "-----BEGIN PRIVATE KEY-----\*******",
"client_email": "buyeranalytic@buyers-
analytic.iam.gserviceaccount.com",
"client_id": "***********",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url":
"https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url":
"https://www.googleapis.com/robot/v1/metadata/x509/***.iam.gservi
ceaccount.com"
}
尝试插入Analytics帐户设置中找到的帐户ID,而不是此代码行中的“123456”:
... management_accountUserLinks->listManagementAccountUserLinks('**123456**');
此外,服务帐户需要具有帐户级别的访问权限。
"error":{
"errors":[
{
"domain":"global",
"reason":"insufficientPermissions",
"message":" Insufficient Permission"
}
],
"code":403,
"message":"Insufficient Permission"
}
确切地说,你没有权限去做你想做的事情。
帐户用户链接:列表需要以下范围
Goals.list需要以下范围。
为了使用第一种方法,您需要修复身份验证并请求用户的其他作用域。在请求中添加了其他作用域后,您将需要再次对用户进行身份验证。
示例:
function initializeAnalytics()
{
// Creates and returns the Analytics Reporting service object.
// Use the developers console and download your service account
// credentials in JSON format. Place them in this directory or
// change the key file location if necessary.
$KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';
// Create and configure a new client object.
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Reporting");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly', 'https://www.googleapis.com/auth/analytics.manage.users.readonly']);
$analytics = new Google_Service_Analytics($client);
return $analytics;
}
我不知道你从哪里得到你正在使用的代码。我建议使用谷歌官方样本。服务帐户需要在帐户级别授予其访问权限。我已经添加了一个示例,演示了如何设置范围。你只需要在你的代码中找到你设置范围的地方,我在你发布的任何内容中都看不到。我还有一些创建ServiceAccount的示例。php
好的,正如标题所建议的谷歌分析API问题。。。 null null Analytics Google API错误403:“用户没有任何Google Analytics帐户” Google Analytics API:“用户对此帐户没有足够的权限。” 但仍然无法让它工作。我添加了范围,如下所示: 现在,我有我试图查询的视图id(profile):code46034120/code>,所以我得到了服务
我正在尝试从Google-Analytics访问数据。我正在遵循指南,并且能够对我的用户进行G授权,并从OAuth获得代码。 当我试图从GA访问数据时,我只得到403个不够的权限。我是否必须将我在Google API控制台中的项目连接到我的分析项目?我该怎么做?还是有什么其他原因让我得到403不够的权限回来? 我正在用Python和Django做这件事,而且我已经打开了我的API控制台的Analy
在使用Python创建存储桶时,我面临着这个问题。它清楚地表明我没有足够的权限,但我并没有犯错误。 我使用以下设置创建了一个实例:默认服务号、使用默认范围的Cloud API默认访问。 这是我收到的错误的回溯:
我从一些来自Google的App Engine的示例代码开始。 我的应用程序需要使用目录API和报表API从谷歌管理SDK。 我已经在API控制台中创建了一个项目,并在Services中打开了Admin SDK。 我将作用域(与下面代码中使用的作用域相同)添加到我域的Google cPanel中高级工具的“Manage API client Access”部分。 null 之后,对Reports
我试图通过API向我的Google Analytics帐户添加用户,但代码产生了以下错误: googleapiclient.errors.httperror:https://www.googleapis.com/analytics/v3/management/accounts/**accountid**/entityuserlinks?alt=json返回“权限不足&>”; 我对此帐户拥有管理员权
我该怎么做有什么建议吗?