Google Analytics APIを使う:認証

| | トラックバック(0)

カテゴリ:

Google Analytics APIのおべんきょう。

僕はJavascriptもJavaもPyrthonも使えないので、得意なPerlでやります。

まず、認証。

認証には3パターンあって、「ClientLogin」、「AuthSub」、「OAuth」があります。
今回はClientLoginの方式を使います。
なぜなら簡単だから。

ただし、この方法は

Important: Do not use ClientLogin if you are writing an application that runs on your computer to make requests on behalf of 3rd party end users. Instead, use either AuthSub or OAuth, which protects end users' private data. Because ClientLogin stores the user login data, it should only be used in cases where that data is under the direct control of the user (e.g. their personal computer).

と書かれていることからもわかるように、
ログイン情報(IDとPassword)が流出する可能性があるので、
気をつけなければなりません。

認証の流れはこんな感じ。

LWP User Agentを生成。

認証用のURL(https://www.google.com/analytics/feeds/accounts/default)に、POSTでアクセスし。
その際、POSTデータとして、メールアドレス、パスワード、service名(= analytics)、source(= c組織名-アプリの名前-バージョン)を渡す必要があります。

Perlのコードはこんな感じ。

my $res = $ua->request(
POST "https://www.google.com/analytics/feeds/accounts/default",
[ Email => 'hogehoge@gmail.com',
Passwd => 'password',
service => 'analytics',
source => companyName-applicationName-versionID ]
);

あ、use LWP::UserAgent と use HTTP::Request::Commonが必要です。

ログインが成功したら200のレスポンスコードが返ってくると思います。

use Data::Dumperして

print $res->content;

とやって何が返ってきたか確認してみてください。

返ってきた情報の中の

Auth=DQAAAK4AAA...(無駄に長い英数字の文字列)

というのが認証の鍵になるものです。正規表現などで、この=の右側を抜き出して、
保存しておきます。

これ以降、GETでデータを取得する際にこの文字列を一緒に渡してあげれば
GoogleAnalyticsのデータを取得することができるようになります。

こんな感じで。

$req = GET $url, Authorization => 'GoogleLogin auth=抜き出した文字列';
$ua->request($req);

時間がないのでここまで。

comments powered by Disqus

トラックバック(0)

このブログ記事を参照しているブログ一覧: Google Analytics APIを使う:認証

このブログ記事に対するトラックバックURL: http://nozawashinichi.sakura.ne.jp/MT-4.25/mt-tb.cgi/659

comments powered by Disqus

このブログ記事について

このページは、Shinichi Nozawaが2009年11月13日 17:07に書いたブログ記事です。

ひとつ前のブログ記事は「Amazon Relational Database Service (Amazon RDS) 」です。

次のブログ記事は「いともあっさりMT::Mailが使えた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。