Toodledo APIを使う方法

TODOサービスにToodledo を使っているのですが、
勉強用にAPIを使ったAIRのクライアントソフトを作ってみようと思います。
開発環境はフリーのAIR GEAR を使います。

ToodledoAPIを利用するためには、まずkeyを取得する必要があります。
今回はkeyを取得するまでの流れをメモしておこうと思います。

keyを取得するために、まずは自分のuseridを確認します。
useridは、メイン画面左メニューのTools & Servicesページの一番下にあるDevelopers APIの詳細画面で確認できます。
Your unique useridと書かれたところにある文字の羅列がuseridになります。
これはAPIで取得することもできます。

次にこれを使ってtokenを得ます。
ActionScriptだと以下のようなコードで得ることができます。

private function loadXML():void {  
// tokenを得るAPIをたたく  
var getTokenRequest:URLRequest = new URLRequest("http://api.toodledo.com/api.php?method=getToken;userid=" + UniqueUserId + ";");  
var getTokenLoader:URLLoader = new URLLoader();  
getTokenLoader.load(getTokenRequest);  
getTokenLoader.addEventListener(Event.COMPLETE, onCompleteGetToken);  
}

/**  
* 取得できたXMLからTokenを得る  
*/  
private function onCompleteGetToken(event:Event):void {  
ReadyToken = true;  
// tokenの抽出  
var loader:URLLoader = URLLoader(event.target);  
var tokenXML:XML = XML(loader.data);  
trace(tokenXML);  
Token = tokenXML.toString();  
}  

tokenを得たら先ほど確認したuseridとパスワードを組み合わせてkeyを得ます。
が、この時パスワードと連結した全体の文字列をMD5ハッシュする必要があります。
ActionScriptの場合、以下のライブラリを使ってMD5ハッシュできるようになります。
as3corelib
※私の場合このライブラリを使いました。他にもあるかもしれません。

DLしたswcファイルをプロジェクトの外部ライブラリとして指定します。
ファイルのimport文は以下の通り。

import com.adobe.crypto.*;  

これを使って以下のようにMD5ハッシュし、keyを生成します。

/**  
* keyを得る(ハッシュしたパス+Token+UserId)  
*/  
private function getKey():void {  
Key = MD5.hash(MD5.hash(PassWord) + Token + UserId);  
}  

これでkeyを使ったAPIが使えます。