32

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

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

ソース:

サービス アプリケーションと Google Analytics 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 = 'xxxxxx001@developer.gserviceaccount.com';


$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);

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

致命的なエラー: メッセージ「GET の呼び出し中にエラーが発生しましたhttps://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end-date=2013-を含むキャッチされない例外「Google_ServiceException」01-25&metrics=ga%3Aページビュー: (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('

動作例と全く同じコードを使っているので、APIやサービスアカウントの設定に問題があるのではないでしょうか?

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

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

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

4

11 に答える 11

10

今日同じ問題が発生しました。profileId を見つけるのは困難です。たとえば、 https://www.google.com/analytics/web/#management/Settings/aXXXXXXwYYYYYYYpZZZZZZZ/ ZZZZZZZ の部分だとします。

于 2013-07-29T12:48:26.160 に答える
6

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

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

Google アナリティクス コンソールのユーザー リストにサービス アカウントを追加してください。開発者コンソールの Credentials, API and Permissions セクションで設定するだけでは、分析へのアクセスは許可されません。

Analytics Console > Admin -> Account -> User Management -> "Add permissions for:"
于 2014-10-09T08:48:34.870 に答える
4

同じエラーが発生しましたが、しばらくすると、このスクリプトをGoogle Chrome(自分のメールアドレス)で使用していることに気付きましたが、AnalyticsAPIは会社のメールで実行されています。したがって、解決策は、グーグルクロームの設定を編集することかもしれません。Google Chrome(設定)のGmailアカウントから切断して、もう一度テストしてください。

于 2013-03-05T13:41:17.827 に答える
4

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

于 2014-02-27T11:17:10.043 に答える
3

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

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

于 2015-02-09T12:00:56.960 に答える
1

別のアプリケーションで「十分なアクセス許可がありません」というメッセージが表示され、.htaccess ファイルに問題の原因となるファイル制限がいくつかあることがわかりました。

于 2013-01-25T17:50:11.280 に答える
0

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

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

于 2015-10-13T19:17:55.217 に答える
0

問題がありました.. アカウント ID が分析アカウントの URL に隠されていることが判明しました!

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

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

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

探している ID は文字 p の後に続きます。

上記の例では、有効な ID は次のとおりです: 87396224

于 2014-06-16T04:42:25.710 に答える
0

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

于 2013-09-14T10:38:03.067 に答える