サービス アカウントを介して Google アナリティクス API でデータを取得しようとしています。
私はこれを行う方法をstackoverflowで検索しており、いくつかの投稿で見つかったのとまったく同じコードを使用していますが、問題が発生しています。
ソース:
サービス アプリケーションと Google Analytics API V3: サーバー間の OAuth2 認証?
サービス アプリケーションと Google アナリティクス API V3: エラー 101 (net::ERR_CONNECTION_RESET)
これは私が得たものです:
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 アクセス アカウントです。
誰かが私が間違っていることを知っていますか?