Google Analytics API で認証エラーになったら

今月も入院していたおいかわです。初めて手術を受けたんですが麻酔ってすごいですね。起こった事をありのままに話すと

麻酔が腕から入ってきたなぁって思ってたら、もう手術は終わって看護師さんに起こされていた!何を言ってるのか分からねーと思うがおれも何をされたのかわからなかった…

まさに時が止まった感覚!ザ・ワールドと戦う彼らの気持ちがとても分かりました・・・

ところで先日、Google Analytics API(GAPI)を使った機能を動かしてみたところログにこんなエラーメッセージが。「GAPI: Failed to authenticate user. Error: "https://developers.google.com/accounts/docs/AuthForInstalledApps"」どうやらOAuth2での認証が必要になったようです。GAPIの配布元を見ると2.0になっており、OAuth2に対応したものになっている!

じゃあ、これに置き換えればOKかと思いきやREADME.MDに色々書いてあります。というわけで以下にその手順を。

動作環境

  • Linux
  • PHP5.3以上が必要

Google Developers projectの作成

こちらからプロジェクトを作成します。名前は何でもいいです。 f:id:h_oikawa2:20150620215346p:plain

Analytics APIの有効化

サイドメニューのAPIと認証>APIを選択し、Advertising APIの項目にあるAnalytics APIを有効にします。 f:id:h_oikawa2:20150620221252p:plain

認証情報の作成

サイドメニューの認証情報を選択し、OAuthの「新しいクライアントIDの作成」をクリックします。アプリケーションの種類は「サービスアカウント」を選択します。f:id:h_oikawa2:20150620222742p:plain

作成が終わると認証に必要な各種情報の記載されたJSONファイルがダウンロードされますがこれは使用しません。「新しいP12キーを生成」をクリックしてP12キーファイルをダウンロードし、適当なフォルダにアップロードしておきましょう。

あと表示されているメールアドレスをメモしておきます。

Google Analyticsに作成した認証情報を登録

Google Analytics管理画面のアナリティクス設定>ユーザー管理をクリックします。先ほどメモしたメールアドレスを登録します。権限は「表示と分析」です。

あとはGAPIの配布元から最新版をダウンロードして置き換えます。 これですべての準備は整いました。覚悟はいいか?オレはできてる。

サンプルコード

$ga = new gapi(アカウントのメールアドレス, 'examplekeyfile.p12');

// ページビュー
// サイト訪問
// ユニークユーザー数を取得
$ga->requestReportData(
               GoogleAnalyticsのビュー ID,
               array('month'), // 月単位で取得します
               array('pageviews', 'uniquepageviews', 'visitors'), 
               null,
               null,
               開始日,
               終了日);

requestReportDataのパラメータや呼び出し方は以前のバージョンと同様です。

ところでジョジョSSに世界DIOと新難易度「究極」が実装されましたね!「究極」は超々高難易度なんですが、あまり理不尽さやイライラを感じることなく攻略を楽しむことが出来ました。敵HPはとても高いのですが攻撃力はそこまで高くないなど、調整が絶妙なのかもしれませんね。また、事前に配布されたSSRヴァニラ・アイスが活躍したのですが、この「究極」が実装されることの布石だったんですね!アニメも終わり今後どのような展開をしていくのか非常に楽しみです。