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などについては、以下に情報がある。
- Google Developers , https://developers.google.com/picasa-web/docs/2.0/reference#Kind , Reference Guide
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
- UTF-8など
- feed
- autor[]
- name・・・作者名
- uri・・・アルバムのURI。https://picasaweb.google.com/ユーザーID
- category[]
- schemeとtermがある。
- 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
- gphoto$nickname.$t・・・名前
- gphoto$thumbnail.$t・・・サムネイルのURI
- gphoto$user.$t・・・ユーザーID
- icon.$t・・・ユーザーのアイコン画像
- id.$t・・・ユーザーのフィードURI
- link[]・・・クリックした際の移行先リンク
- etc…
- autor[]
- version
- 1.0
- encoding
参考URL
- Google Developers , https://developers.google.com/picasa-web/?hl=ja&csw=1 , Picasa Web Albums Data API
- 再び、失業SEの開発日誌 , http://blogs.dion.ne.jp/kotemaru/archives/10549774.html , JavaScriptからPicasaにアクセス