web-dev-qa-db-ja.com

「十分な権限がありません」Google Analytics APIサービスアカウント

サービスアカウントを介してGoogle Analytics APIでデータを取得しようとしています。

私はこれを行う方法をstackoverflowで検索しており、いくつかの投稿で見つかったまったく同じコードを使用していますが、機能させるために問題が発生しています。

出典:

サービスアプリケーションとGoogleアナリティクスAPI V3:サーバー間OAuth2認証?

サービスアプリケーションとGoogleアナリティクスAPI V3:エラー101(net :: ERR_CONNECTION_RESET)

http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php

これは私が得たものです:

require_once('googleAPIGoogle_Client.php');
require_once('googleAPI/contrib/Google_AnalyticsService.php');

const CLIENT_ID = 'xxxxxxxx001.apps.googleusercontent.com';
const SERVICE_ACCOUNT_NAME = '[email protected]';


$keyfile = $_SERVER['DOCUMENT_ROOT']."/xxxxxxx284-privatekey.p12";


$client = new Google_Client();
$client->setAccessType('offline');
$client->setApplicationName("cc insights");


$key = file_get_contents($keyfile);
$client->setClientId(CLIENT_ID);

$client->setAssertionCredentials(new Google_AssertionCredentials(
    SERVICE_ACCOUNT_NAME,
    array('https://www.googleapis.com/auth/analytics.readonly'),
    $key)
);


$service = new Google_AnalyticsService($client);

$data = $service->data_ga->get("ga:xxxx7777", "2012-01-01", "2013-01-25", "ga:pageviews");
var_dump($data);

実行すると、次のエラーが発生しました:

致命的なエラー:キャッチされない例外「Google_ServiceException」とメッセージ「Error calling GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end- date = 2013-01-25&metrics = ga%3Apageviews :(403)ユーザーには、このプロファイルに対する十分な権限がありません。 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66スタックトレース:#0/Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST .php(36):Google_REST :: decodeHttpResponse(Object(Google_HttpRequest))#1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178):Google_REST :: execute(Object (Google_HttpRequest))#2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383):Google_ServiceResource-> __ call( 'get'、Array)#3/Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/Google.php(46):Google_DataGaServiceResource-> get( 'g in /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php on line 66

実際に使用している例とまったく同じコードを使用しているため、APIまたはサービスアカウントの設定に問題があると思いますか?

これは私がアナリティクスアカウントに追加したユーザーです。 Analytics users

これはapiアクセスアカウントです。 api access

誰かが私が間違っていることを知っていますか?

31
Kozmk12

私はまったく同じエラーを受け取りました、そしてこれは私のためにそれを解決しました:

ビューIDではなくアカウントIDを使用していました。ビューIDに切り替えると修正されました。これは常に「ビューID」であり、アカウントまたはプロパティID(「UA-xxx」のように見える)ではありません。ビューIDは特定のウェブプロパティ用であり、[管理]-> [ビュー(3列目)]-> [ビュー設定]にあります。ダッシュのない整数です。

https://stackoverflow.com/a/15789266/1391229

70
jarace87

今日同じ問題が発生した場合、profileIdを見つけるのは困難です。アナリティクスのすべてのURLにそれを含めることができます https://www.google.com/analytics/web/#management/Settings/aXXXXXXwYYYYYYYpZZZZZZZ/ それはZZZZZZZ部分です

10
jrenouard

同じ問題。アカウントID(UA-XXXXX-1)の代わりにVIEW IDを使用して解決しました。

Analytics Console > Admin -> View (Profile) -> View Settings -> View ID

[〜#〜]および[〜#〜]

Googleアナリティクスコンソールのユーザーリストにサービスアカウントを必ず追加してください。デベロッパーコンソールの[認証情報、API、権限]セクションで設定するだけでは、アナリティクスへのアクセスは許可されません。

Analytics Console > Admin -> Account -> User Management -> "Add permissions for:"
5
Jason

同じエラーが発生しましたが、しばらくすると、このスクリプトをgoogle chrome(自分のメールアドレス)で使用していることがわかりましたが、Analytics APIが会社のメールで実行されています。 Google Chromeの設定を編集する必要があります。GoogleのGmailアカウントから切断するchrome(settings))、もう一度テストしてください。

4
Havrin

「管理」タブの「ビュー設定」「ビューID」で、アカウントIDではなくビューIDを使用します。

4
Pablo Martinez

2週間解決策を見つけようとした後、私を大いに助けてくれました:

Analyticsコンソール->管理->表示(プロファイル)->表示設定->表示ID

3
Leumas Naypoka

別のアプリケーションでは、「十分な権限がありません」と表示され、.htaccessファイルにファイル制限があり、問題が発生していることがわかりました。

1
user1695595

私は.netライブラリを使用して同じ問題を抱えていましたが、いじくり回した後、私は解決策を見つけました:

Googleアナリティクス管理サイトにアクセスして、サービスアカウントをユーザーとして追加し、そのアカウントに必要な権限を付与します

1
Lee Gary

共有セグメントを作成してください...機能します

http://www.periscopix.co.uk/blog/google-analytics-new-feature-shared-segments/

0
Vishal Bedre

問題がありました。分析IDのURLにアカウントIDが隠されていることがわかりました。

https://developers.google.com/analytics/devguides/reporting/core/v3/#user_reports

通常、URLは次のようになります。

https://www.google.com/analytics/web/?hl=ja#management/Settings/a51343283w843304p87396224 /%3Fm.page%3DAccountSettings/

私たちが探しているIDは、文字pの後に続きます。

上記の例では、機能するIDは87396224です。

0
hellojebus

他のクライアントIDを使用している可能性があります:クライアントシークレット:別のプロファイルIDの詳細を取得する

0
Ravi Kumar