0

CMSを介して公開された記事のページビュー数をインポートする簡単なスクリプトを作成しようとしています。Google Analytics APIクエリビルダーを使用してクエリを簡単に作成しました。これにより、目的の結果がすばやく返されます。Webサーバーでスケジュールされたジョブは、クエリを1日1回実行し、更新とページビューのカウントを行います。

私はページビューのみを取得しているので、oAuthプロセス全体を実行する必要はなかったと思います。このGoogleアカウントにはWebプロパティとプロファイルが1つしかないため、それを取得するためのルーチンは必要ありません。

アプリを登録してAPIキーを作成しました。このプロファイルでGoogleAnalyticsがオンになっていることを確認しました。APIを読んだことに基づいて、このキーをhttpパラメーターとして渡して、クエリを適切に承認できると思います。

http経由でクエリを実行すると、認証エラー(401)が発生します。クエリは以下に含まれています:

https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A[MY ID]&metrics=ga%3Apageviews&start-date=2012-08-09&end-date=2012-08-23&max-results=50&key=[MY API KEY]

私はこれの多くの例をグーグルで検索しましたが、それらはすべて非常に精巧な(そして私のユースケースでは不要な)認証ルーチンを実装しているように見えました。しかし、多分私は何かが欠けています。

よろしくお願いします。

  • クリス、欲求不満のグーグル
4

1 に答える 1

1

この例を使用して 401 エラーを修正しますhttp://dumitruglavan.com/ganalytics-class-access-google-analytics-data-api-with-php/

以下を承認する必要があります。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'accountType' => 'GOOGLE',
    'Email' => $email,
    'Passwd' => $password,
    'service' => 'analytics',
    'source' => ''
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

$auth = '';
if($info['http_code'] == 200) {
    preg_match('/Auth=(.*)/', $output, $matches);
    if(isset($matches[1])) {
        $auth = $matches[1];
    } else {
        throw new Exception('Login failed with message: ' . $output);
    }
}

そして、承認後、ヘッダーで承認トークンを送信します。

$headers = array("Authorization: GoogleLogin auth=$auth");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
于 2013-02-22T09:28:16.530 に答える