Tag: json

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 の正式発表

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

Archives + Tags

デザイン変えたときにほったらかしになってたArchivesとTagsを追加。

全部Javascriptだけでやったので、ブラウザがJavascriptに対応してなかったり切ってたりしてると、存在そのものが見えないです。というか、このサイトJavascript切ってるといろいろ見えないです>< トップページの縦にズルンッとスライドするやつとかね。WordPressにJSON吐かせて自由自在ー。

今までだと、Javascript切っててもある程度見られるように作ったりしてたし、それが当たり前なんだとおもうけど、最近はこうやってバッサリ切り落とした作りでいっちゃうね。まぁコンテンツじゃないから問題なし。

ということで、ArchivesとかTagsとか押してみるといいよ。
とりあえず押してみるのよ、それでダメだったら引いてみよう。最初から待ちのスタンスじゃやっぱダメだよね。うん。はい。

追記 090421:
jQueryのfancyboxプラグインも、Archives & Tagsで使ってるやつに変えた。なので、pngfixなjsも使わなくなった(でも、スクリーンショットとかで透過png使うとき用にcss書かなあかんな)。でもまぁこれでインターフェース周りで使う画像が全てなくなった。ちょうきもちいい。

それと、マウスオーバー時にズームしますよアイコンも追加。Closeアイコンも。このへんのアイコンはcanvasで。IEでの表示はuupaa-excanvas.jsに助けてもらってます。
あ、CloseアイコンはMacとそれ以外のOSで表示位置を変えてみました。MacのUIだとウィンドウを閉じるボタンは左側にあるので。まぁWebのUIとOSのUIをごっちゃに考える必要は全くないんだけど、モノは試しってことで。

まだまだ気に入らない部分が山ほどあるので、ちょいちょい修正・追加ちゅう。

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なんかは全く含まれていないので、こっちのエントリーを参考にしてください。あと、キャッシュのときは速いんだけど、更新するときの出力は遅いですのであしからず。それと、気が向いたら手を加えるかもしれないので、出力結果がやや変わるかも。

怒られたら止めまーす。

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