Monday, July 28, 2008

Nike+のWeb API

Nike+はFlash (Flex or AIR)のフロントエンドからアクセスするけど、裏ではWeb APIでデータにアクセスできる。が、そのAPIは公開されていないらしい。

公開されていなくても、簡単なAPIなので、すでに解析されていろいろ作られている。


Connecting to the Nike+ API with C#
 APIの一覧表がある。
Accessing Nike+ data with PHP
 PHPからアクセスするクラス。SimpleXMLとCurlが必要。
Nike+ iPod Stats Wordpress Plugin
 Wordpressのプラグイン。


で、C#の記事のAPIの一覧表に従ってアクセスしてみると、USのサイトのアカウントになってしまい、日本のサイトに記録されているデータが出てこない。

ということで、FirefoxにLive HTTP Headersを入れて、日本のサイトへのアクセスを少し調べてみた。下記のようにすると、日本のサイトからデータを取り出すことができた。

ログイン
https://secure-nikeplus.nike.com/nikeplus/v1/services/app/external_profile_login.jsp?login=[ログインID]&password=[パスワード]&locale=ja%5Fjp

ログインするとクッキーが2個セットされる。(xxxxはクッキーの値)
Set-Cookie: AnalysisUserId=xxxx; domain=.nike.com; path=/; expires=Friday, 31-Dec-2010 23:59:59 GMT
Set-Cookie: PSESSIONID=xxxx; domain=.nike.com; path=/

以降はこのクッキーをヘッダに入れてアクセスする。

ユーザのプロファイル
https://secure-nikeplus.nike.com/nikeplus/v1/services/app/get_user_data.jsp

runの一覧
https://secure-nikeplus.nike.com/nikeplus/v1/services/app/run_list.jsp

ブラウザでアクセスすれば、クッキーは自動的に処理されるので、3つのURLを順にブラウザのアドレス欄に入れるだけでよい(ログインIDとパスワードは置き換えて)。そうすれば、どんなXMLデータが返ってくるかわかる。

こんな感じ。





1 comment:

Unknown said...

https://secure-nikeplus.nike.com/nikeplus/v1/services/app/get_run.jsp?id=#{run_id}
でもっと詳細な情報が取れますよ