2008年8月12日火曜日

ActionScript3からFriendFeedAPIに触る

最近SocialBrowseのアカウントが削除されるという不幸が発生して、LinkのShareFriendFeedに移行した。
だが、専用Clientで自分にあった物が見つからない。AlertThingyは自分のFeedを簡単には見れない(検索条件に"who:shin1ogawa"のように設定すれば可能)上、AIR独特の「特殊なWindowを使用した時の不具合?(WindowをClickすると妙な移動をする)」がイマイチ、twhirlもAlertThingy同様AIRの不具合?と「ひとつのEntryがデカすぎる」というのがイマイチ。MySocialはMac用のWindowを使っているみたいでAIR独特の不具合?は無いんだけど、twhirl同様「ひとつのEntryがデカすぎる(かなりデカイ)」。
自分としてはとにかく以下の機能が最も大事。
  • Friends/MeのFeedが自動更新される。できるだけたくさん見れたら嬉しい。
これだけあれば十分。PostはFirefox+Pluginか、Twitterなら夏ラでやるので必要ない。Commentの追加とLikeをつけられたら嬉しいくらい?なので、よく考えたら作ったら(作ってもらったらw)えーがなー、という事になった。
最近ActionScriptから触ったSlimTimerの時は、たぶんSlimTimer側の問題のせい(とにかく不親切)でAS3のHTTPServiceやURLLoaderが不審な動き(HTTPServiceは異常発生時に不親切すぎ!)をして苦戦したが、FriendFeedのAPIの方はアッサリ動作確認できた。
package service {

import mx.rpc.http.mxml.HTTPService;
import mx.rpc.events.ResultEvent;

public class FriendFeedService {

  public static function executeFeedService(
    nickName:String, remoteKey:String, callback:Function):void {
    var httpService:HTTPService = new HTTPService();
    httpService.showBusyCursor = true;
    httpService.method = "GET";
    httpService.url = "http://friendfeed.com/api/feed/home?format=xml";
    httpService.useProxy = false;
    httpService.setRemoteCredentials(nickName, remoteKey, "utf-8");
    httpService.resultFormat = "e4x";
    httpService.addEventListener(ResultEvent.RESULT, callback, false, 0 , true);
    httpService.send();
  }
}
}
後は超簡単なGUIにbindすればそれで十分なんだけど…mxmlは全然慣れていないのですw
コメントを投稿