Flickr APIのREST APIを、XPath4AS2で読んで写真を表示するのを作ってみた。

前のXPathTesterを改造して、50行ぐらいで完成した。

タグを適当に入れて、Loadボタンを押すと動く



SourceCode(Flash8), Archive

(XPath4AS2にクラスパスが通ってないとコンパイルできません。また、1フレーム目4行目のAPI Keyは各自で取得してください)

■API Keyを取得する

Flickr ServicesからAPI-Keyを取得する。名前とメールアドレスが必要。

今回はKeyだけで良いが、アップロードする時などはSecretとAuth_tokenも必要になる→ s.h.log: Flickr::Uploadで写真をアップロード

■コード

Flickrの画像のアドレスは

http://static.flickr.com/サーバー名/id_secret.jpg

になっている。XMLをパースして、それぞれの値を結合して画像のURLを作る。

Loaderコンポーネントを1つステージに配置して、loader.contentPath にURLを指定すると自動で写真が読み込まれて表示される。

API Explorerで同じXMLが読めるので写真のURLと一緒に確認すると、わかると思う

importcom.xfactorstudio.xml.xpath.*;

//config

api_key=”yourownkey”;

//initalize

varxml:XML=newXML();

xml.ignoreWhite=false;

selectButton.enabled=false;

varxmlUrlTmp=”http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=”+api_key+”&tags=”;

varnum:Number=1;//写真の初期番号

xml.onLoad=function(success:Boolean){

if(success){

trace(“XMLloadsuccess!!”);

trace(xml);

loadPhoto(num);//写真を読み込む

}

else{

trace(“XMLloaderror!!”);

}

trace(“inputXPath”);

}

/*写真を読む*/

functionloadPhoto(num:Number){

varphotoUrl=”http://static.flickr.com/”+

XPath.selectNodes(xml,”rsp/photos/photo[“+num+”]/@server”)+”/”+

XPath.selectNodes(xml,”rsp/photos/photo[“+num+”]/@id”)+”_”+

XPath.selectNodes(xml,”rsp/photos/photo[“+num+”]/@secret”)+”.jpg”;

trace(photoUrl);

imageLabel.text=photoUrl

loader.contentPath=photoUrl;

}

loadButton.onRelease=function(){

loader.contentPath=””;

trace(“loading…”);

num=1;//初期化

varrequestUrl=xmlUrlTmp+tagLabel.text;

trace(requestUrl);

xml.load(requestUrl);

}

tR.onRelease=function(){

if(num<50){

loadPhoto(++num);

}

}

tL.onRelease=function(){

if(num>1){

loadPhoto(–num);

}

}