FlashでFlickr REST-APIを呼ぶ

カテゴリー: 未分類 タグ:

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と一緒に確認すると、わかると思う

import com.xfactorstudio.xml.xpath.*;

// config

api_key = ”your own key”;

// initalize

var xml:XML = new XML();

xml.ignoreWhite = false;

selectButton.enabled = false;

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

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

xml.onLoad = function(success:Boolean) {

    if(success){

        trace(”XML load success!!”);

        trace(xml);

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

    }

    else{

        trace(”XML load error!!”);

    }

    trace(”input XPath”);

}

/* 写真を読む */

function loadPhoto(num:Number){

    var photoUrl = ”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; // 初期化

    var requestUrl = xmlUrlTmp+tagLabel.text;

    trace(requestUrl);

    xml.load(requestUrl);

}

tR.onRelease = function(){

    if(num < 50){

        loadPhoto(++num);

    }

}

tL.onRelease = function(){

    if(num > 1){

        loadPhoto(–num);

    }

}

  1. コメントはまだありません。
  1. トラックバックはまだありません。
track feed