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);
}
}