PHPでAtomAPI

PHPでAtomAPIを使ってみた。

基本的にHTTPが分かってない。なので、POSTで名前なしのXMLデータを流すにはどうすればいいかさっぱり。これまでは、PerlのXML::Atom::Clientあたりに任せてたから、じゃあPHPではどうするってのが分からなかった。

UnknownPlace. - PHP で WSSE 認証
眠る開発屋blog:HTTP_Requestを使ってはてなフォトライフへ画像を投稿
WSSEの使い方とPOSTでXML(Atom)を流す方法が書いてあった。HTTP_RequestのsetRawPostData関数使うと名前なしで流す事ができるらしい。最初上の方の記事だけ見てて、下の記事からのトラックバックだって気づかずに、XMLをエスケープしたものをPOSTしてた。なので500エラーで困惑。
ちなみに、記事の通りPHP5ではsha1関数がバイナリ出力に対応しているのでpack関数は使わないでいけた。sha1関数の第2引き数にtrueを渡すとバイナリ出力($bin = sha1(time(), true);)。デフォルトではfalseなので注意。

久しぶりにAtomAPIを触りだしたのは、SBSを管理するツールでも作ろうかなと思ったから。netvibesとかGoogleとかのモジュールで対応してるSBSはどうしてもdel.icio.usになる。なので、はてなとdel.icio.usを同期しないといけない。まあ、del.icio.usに乗り換えればいいんだけど慣れからいってちょっと面倒。

今のところできてるものは以下。
・はてなブックマークの全件データをローカルDBと同期する処理
・ローカルDB(はてなブックマーク)とdel.icio.usと同期する処理
・はてなブックマークとdel.icio.usへのクロスポスト

今後作るものは以下。
・はてなとローカルDBとの同期を最小限で済ませる
・ローカルDBにあるブックマークデータのエディタ
・ローカルDBにあるブックマークデータのブラウザ(related tagをサポート、カレンダー?)
・ローカルDBにあるブックマークデータのリンクチェック(301なら更新、なければ削除)
・ソーシャルデータのブラウズ(ユーザとかコメント、タグとか)
・ほか

基本的にローカルでの利用を考えていて、しかも相当な環境依存(PHP5.1.2+MySQL5)なので公開予定はなし。SBS系の派生サービスで遊ぶためにデータを管理したいっていう個人的な欲求が先にある上に、勉強の題材にしてるので。

環境を選ばない(最低限の依存)って事を考えると、PHP5+SQLiteとかがいいのかな?

プロフィール

このブログ記事について

このページは、koshigoeが2006年1月29日 18:13に書いたブログ記事です。

ひとつ前のブログ記事は「OSXでGNU LS」です。

次のブログ記事は「rsync(のとっかかり)を覚える」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。