tanaka's Programming Memo

プログラミングについてのメモ。

Picasaのアルバムの参照

Picasa Web API

Picasaを操作するためのAPIがWebベースで公開されている。公開されているアルバムは、ユーザーIDを指定するだけで、認証をしなくてもアクセスすることが出来る。

jQueryからのアクセス方法

ブラウザでアクセスする場合は、Google Developersのサイトに紹介されているURLでデータが取得できるが、jQueryからアクセスする場合は戻り値がJSONで得られるように、以下を追加する必要がある。

アルバムの取得方法
https://picasaweb.google.com/data/feed/api/user/{userID}?kind=album&alt=json

上記の{userID}には、picasaに登録したユーザIDを指定する。Googleのメールアドレスでもいいし、@以降を省略してもよい。kindなどについては、以下に情報がある。

jQueryでは、$.get()や$.getJSON()では、データタイプの指定が出来ないため、$.ajax()でアクセスする。

var url = “https://picasaweb.google.com/data/feed/api/user/{userID}?kind=album&alt=json”;
$.ajax({
    url:url,
    cache:true,
    dataType: "jsonp",
    error: function(xreq,stat,err) {
      alert("load error:"+err+" "+url);
    },
    success: function(json, type) {
    var list = [];
    for (var i=0; i<json.feed.entry.length; i++) {
        var e = json.feed.entry[i];
        if (e.gphoto$access.$t == "public") {
        list.push({
            thumbnail: e.media$group.media$thumbnail[0].url,
            albumid: e.gphoto$id.$t
        });
        }
    }
    self.albums = list;
    alert(list[0].albumid);
}

返されるデータ

成功すると、jsonとtypeが返る。以下、一部を抜粋。

  • typeは、結果。成功していたら”success”が返る。
  • json
    • encoding
    • feed
      • autor[]
      • category[]
      • entry[]
        • gphoto$id.$t・・・アルバムID
        • gphoto$name.$t・・・アルバム名
        • gphoto$user.$t・・・このアルバムのユーザーID
        • title.$t・・・アルバム名
        • rights.$t・・・公開状況。publicならアクセス可能
        • media$content[]
          • url・・・ちょっと大きいサムネイル画像
        • media$group.media$thumbnail[]
          • url・・・このアルバムのサムネイル
          • height・・・高さ
          • width・・・幅
      • generator
        • $t・・・Picasaweb
        • uri・・・picasaのトップ
        • version・・・1.0
      • gphoto$nickname.$t・・・名前
      • gphoto$thumbnail.$t・・・サムネイルのURI
      • gphoto$user.$t・・・ユーザーID
      • icon.$t・・・ユーザーのアイコン画
      • id.$t・・・ユーザーのフィードURI
      • link[]・・・クリックした際の移行先リンク
      • etc…
    • version
      • 1.0

参考URL