Tag: photoshare

PhotoShare Atom JSON JSONP

Life is beautiful: PhotoShare の Atom/JSON/JSONP Feed の正式発表

これ、正式に発表されました。JSONPにも対応してるね。

http://feeds.bcphotoshare.com/users/[user_id].atom

http://feeds.bcphotoshare.com/users/[user_id].js ←これがJSONP

http://feeds.bcphotoshare.com/users/[user_id].json

JSONPのコールバック関数は指定できないっぽい。デフォルト「handlePhotoShare」で[user_id].js?callback=unkoとかやっても変化無し。

あと、また新しく見つけた。
http://feeds.bcphotoshare.com/public.atomとかでRecent PhotosのFeedが取れる(っぽいんだけど、内容が違う??)。何なんだろこれ。Atomのタイトルが「Big Canvas PhotoShare – public line」になってるし、Recent Photosじゃないのかな…?

アクセス回数制限のようなものは特にもうけていないので、ブログパーツを作るなり、RSSリーダーに読み込ませるなど自由に使っていただいてかまわない。

Life is beautiful: PhotoShare の Atom/JSON/JSONP Feed の正式発表

自由にやりたい放題やっていいのかー。
んー、なんか作ってみようかなぁ。ブログパーツ作っても使わんしなぁ…。

PhotoShare Atom JSON

久しぶりのPhotoShareネタ。

インドにいたので告知はしてないですけど、RSSのフィードを出すようにしたんです。とりあえずユーザーごとの。写真のアップロードは用意してないですけど。

入り口としてのアプリ配布って考え方:BigCanvas中島聡対談 その7 | iPhoneアプリのAppBank

インドです。インドのケータイ電話加入者数マジハンパない!じゃなくて、「RSSのフィードを出すようにしたんです」のとこね!ぼく待望のRSSですよ(最近全くPhotoShare使ってなかったけども)。

んで、PhotoShareのサイト見てみたんだけど、RSSがどこにあるのかわかんない…。headのlinkにも無ければページ内のどこかにリンクがあるわけでもない…。urlをズコバコ変えてみて(photosをrssにしたりとかね)もRSSが表示されることはなかった…。

けど見つけた。「http://feeds.bcphotoshare.com/」にアクセスするとなんかXMLが表示される(これ見えちゃっていいやつ?)。んでその中のKeyを適当に選んでURLに追加してみるとFeedが表示された!JSONもある!

というわけで、自分のuser_idの番号を入れてみたんだけど、エラーのXMLが表示される。NoSuchKeyって。さっきの「なんかXMLが」にMaxKeys 1000っていうのがあったから、勝手に「あーRecentの1000件分のみね、うんうん」と思って、久しぶりにPhotoShareにアップロードしてからアクセスしたらいけた!Feed見れた。
RSSじゃなくてAtomやけど、まぁどっちでもいいです。JSONはcallbackには対応してないみたい。

Atomは「http://feeds.bcphotoshare.com/users/[user_id].atom」で、JSONは「http://feeds.bcphotoshare.com/users/[user_id].json」ね。

たとえばjQuery使って

$.getJSON('http://feeds.bcphotoshare.com/users/'+user_id+'.json', function(data){
    $.each(data, function(i,item) {
        $('<img/>').attr({'src': item.image, 'alt': item.title}).appendTo('#photoshare');
    });
});

こんな感じで書けばいいと思う(動くか試してないけど)。

んーでも、AtomもJSONも見れなくなっちゃうから(イマイチどういう動きするのかわかんないけど)キャッシュがいるよなぁ。さくっとできないと、さくっとやろうと思わないんだよなー。

追記:
まだアクセスできるなぁ(2009-03-27)

追記2:
まだアクセスできるね。ってことは上記のMaxKey云々ってのは全く関係ないのかな。PhotoShareのatom/json吐き出し機能がスタートしてから一度でも写真をアップロードすれば恒久的にatom/jsonは吐かれるってことなのかな。

PhotoShareJSON修正

PhotoShareのデザイン変更があったので、ぼくが(勝手に)作ったPhotoShareJSONが出力されなくなっていたので、修正しました。

以前とHTMLの構造も違うし、表示される写真の枚数も12枚→100枚になってる。

ということでJSONも最大100枚分出力されます。最新hoge枚分出力とかやろうかと思ったけど、面倒くさくてそのまま。jsでif (i==15) return false; な感じで制限。

PhotoShare、Feed吐くかなーと思ってたけどまだみたいね。

PhotoShareのJSON

このページの一番下、Meの下にぼくのPhotoShareの最新12枚を表示するようにしました。

PhotoShareのぼくのページのHTMLをWeb::Scraperして、整形して、JSON::XSで出力。そのそれをjqueryからAjaxで読み込んで整形して表示。という感じです。毎度毎度PhotoShareにアクセスすると遅いし怒られちゃうかもしれないから、適当にキャッシュしてます。RSSの出力もしようかと思ったというか最初はRSS出力がしたかったんだけど、ひとつ前のエントリーにも書いたように、日時の情報がきっちり取れないのでやめました。まぁ近いうちにオフィシャルで対応するみたいだしね(ですよね?)。あーそうなったらデータソースはHTMLからRSSに変更しよっと。

使われる方はどうぞ→「http://labs.11px.net/bcps/json/?userid=xxxx&callback=xxxx」
ただのjsonでいいやって方はcallbackは無しでもOKです。urlなんかは全く含まれていないので、こっちのエントリーを参考にしてください。あと、キャッシュのときは速いんだけど、更新するときの出力は遅いですのであしからず。それと、気が向いたら手を加えるかもしれないので、出力結果がやや変わるかも。

怒られたら止めまーす。

PhotoShareメモ

パブリックページ

  • http://www.bcphotoshare.com/photos/public

ユーザーページ

  • http://www.bcphotoshare.com/photos/[user id]

個別写真ページ

  • http://www.bcphotoshare.com/photos/[user id]/[photo id]

ユーザーアイコン

  • http://www.bcphotoshare.com/users-icon/[user id]/thumb40.jpg
  • http://www.bcphotoshare.com/users-icon/[user id]/thumb68.jpg
  • http://www.bcphotoshare.com/images/user-thumb40.jpg

画像

  • http://images.bcphotoshare.com/storages/[photo id]/small200.jpg
  • http://images.bcphotoshare.com/storages/[photo id]/small225.jpg
  • http://images.bcphotoshare.com/storages/[photo id]/large.jpg
  • http://images.bcphotoshare.com/storages/[photo id]/thumb68.jpg
  • http://images.bcphotoshare.com/storages/[photo id]/thumb40.jpg
  • http://images.bcphotoshare.com/storages/[photo id]/original.jpg

ユーザーアイコン・画像は他にもあるかも。Exifは何にもなし。画像のレスポンスヘッダにX-Appname: iphotolog。largeとかにはLast-Modifiedが入ってる。サーバーも違うなぁ。
iPhoneのアプリからアクセスすると日時の情報がしっかり表示されてるけど、Webのほうは「September 6, 2008」などと時間が入ってない。しかもタイムゾーンがGMT?

Me

Yasutaka Sato

more

Tags
add-on again album amazon analytics animal apologize app apple appreciation bag baseball battle beauty birthday blog blood blue bluetooth body book bookmark bought brave broken browser burn camera canon canvas car care catalyst change chocolate chrome chromium circle cleaning code coffee coffeeshop coke command communication complete conference cook coupon creation css cui cute dark db design desire desktop diary disqualification dizzy drama dream drive drunk eeepc empty erotic error essay fake false fav festival firewall fireworks flirt font food forgot fortune frame france friends from iPhone fx game geek geolocation girl google graph hack hatena headache holiday hot house hungry ice impressions interesting ipad iphone ipod itunes jailbreak jetpack jquery js json kicks kiss kobe kyoto leopard lie life lifestyle light lighttpd linux livedoor logic lost love lunch lyric mac macbook mail map maps marriage mcdonald's me memo mental message microsoft miss misunderstanding mobile moblin morning mouse movie music mysql mystery name neet netbook newbalance news newyear night notebook occupation omelet os pack pain parting past pc peace peperoncino perl phobia photo photoshare php picture plan pleasure plugin poem pop producer profile pwned rabbit radio rain rap recipe redo regret relation release remember reminiscence repeat reverse rice rip rnb rrd sakura scan scare search server sex shinjuku sick simple sky slept slim smell snack snowboard softbank sorrow sound souvenir spaghetti speed sports ssd star start station store streaming stupid stystk suicide summer sunrise switch tears temperature temple terminal test thanks thought time tips tokyo trable trance travel true tumblr twitter uneasy urban used uupaa vacation various vertigo video walk wandering web weight wifi word work wp year-end you youtube