AccessRankingGAは利用できません

  • 投稿日:
  • 更新日:2015/04/08
  • by
  • カテゴリ:

ClientLoginのサポート終了

AccessRankingGAをインストールしようとして躓いて調べて分かったのですが、GoogleはClientLoginのサポートを2014年8月に終了したのでその機能に頼っている本プラグインは動作しなくなりました。

具体的な症状

再現手順

インストールして利用しようとすると、以下のように403 ForbiddenエラーがGoogleから返ってきます。この症状は<$mt:AccessRankingGA$>を含むページ、たとえばインデックステンプレートの日、週、月で集計するスクリプトを公開しようとすると発生します。

AccessRankingGAError.pngエラー画面

プログラムからのアクセスを許可する方法(OAuth2で有効)

ためしにGoogleのデベロッパーページを参考に、AccessRankingGAのプラグインプログラム内でやっている通りにcurlでログインしようとすると、以下のようになります(青字の部分は自分のアカウント情報を使います)。

$ curl -k --location https://www.google.com/accounts/ClientLogin --data "accountType=GOOGLE&Email=example@gmail.com&Passwd=example&service=analytics&source=companyName-applicationName-versionID" --header "Content-Type:application/x-www-form-urlencoded"
Error=BadAuthentication
Url=https://www.google.com/accounts/ContinueSignIn?...
Info=WebLoginRequired

出力中の"Url=..."で示されたURLにアクセスすると、Account settingsのページに行くので、"Recent activity"->"Devices"に行くか、直接Devices & Activityのページに行くと、上記アクセスがブロックされていることが分かります。

Security - Devices1.png(クリックで拡大)

このアクセスを許可するため、"YES THAT WAS ME"をクリックし、

Security - Devices2.png(クリックで拡大)

続く確認画面で"OK"をクリックしても、この設定画面上ではアクセス許可されているように見えますが、ブロックは解除されません。

OAuth2でないとアクセスできません

上記の理由がGoogleがClientLoginのサポートを2014年8月に終了したことです。現在、プログラム的にGoogleのAPIにアクセスするためには、プログラムがOAuth2に対応している必要があります。

たとえば、MovableTypeにはデフォルトで「設定」→「Webサービス」でGoogle Analyticsとの連携機能が備わっています。cpanでCrypt::SSLeayをインストールすれば動作します(これがTinyCore Linuxだとまた一苦労でしたが)。この機能はOAuth2を利用しています。

この連携機能を生かしてAccessRankingGAをOAuth2対応にしたいですが、ちょっと面倒です。時間が取れたらやってみようと思います。

こちらもよく読まれています