Fork me on GitHub

2007/07/31


このエントリーをはてなブックマークに追加
先日ようやくPownceのAPIが公開されました。
APIはGoogle Groupで公開されています。
また、Python, Perl, ColdFusionを使ったライブラリも公開されています。ただし07/31時点では...
  • ColdFusionのディレクトリは空っぽ
  • PerlはMessageとFileしか対応していない
  • Pythonは全て対応しているけども中身が×××
って事で、MixiAPI.pyのようなものを作ってみました。
フィードの取得はPownceAPI.Session(userid, passwd)でセッションオブジェクトを作成し、get_notes()でfeedparserオブジェクトが返ります。また、ポストは
  • PownceAPI.Message(message)
  • PownceAPI.Link(message, url)
  • PownceAPI.File(message, file)
  • PownceAPI.Event(message, location, name, datetime)
で作成したオブジェクトをsession.send_item(to, item)で送信します。
簡単な例を以下に示します。
import PownceAPI

# セッションを作成
session = PownceAPI.Session("example", "password")

# フィードを取得
print session.get_notes().entries[0].summary

# メッセージを送信
item = PownceAPI.Message("do you have a time?")
session.send_item("public", item)

# ファイルを送信
item = PownceAPI.File("my location", "map.png")
session.send_item("all", item)

# リンクを送信
item = PownceAPI.Link("gugure!", "http://www.google.com/")
session.send_item("public", item)

# イベントを送信
item = PownceAPI.Event("this is a party!", "My Home", "Yakiniku")
session.send_item("all", item)

今のところ、send_itemで指定出来るtoに制限があるのか、File等をallではなくpublicで送信すると500 Internal Server Errorが発生します。
また、APIを使ってもマルチバイト文字は表示されません。
とりあえず、動いている...といったところです。
もしPownceが使いたいが招待状がないという方は、コメントなりで連絡下さい。招待状を送らせて頂きます。

続きを読む...

Posted at 13:00 in web::pownce
Tagged as: Pownce
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2007/07/13


このエントリーをはてなブックマークに追加
Pownceをはじめました。ファイルを共有出来る所が特徴で、Twitterのいい対抗馬になるのでは?と思ってます。
Pownce Desktopというアプリケーションも付いてますので、一般ユーザにも取っ掛かり安いかもしれません。ただ、現状マルチバイト文字が入力できないので、全て英語(ぽいもの)で書かないとコミュニケーション出来ません。
もしよかったら気軽にAddしてみて下さい。

ところで...
Pownce Desktopの通信をパケットキャプチャした所、どうやらAPIは存在するようで、専用のURIも存在します。ただまだ非公開の為、変更される事もあれば、今後公開される予定もないかもしれません。
興味本位でWSSEヘッダを作成し、GETを投げて見ましたがHTTP/403。色々試しましたがやはりHTTP/403。どうやらWSSEヘッダの作り方が通常と異なるようです。
通常ならばWSSEヘッダは
base64(sha1(nonce + now + password))
となるべきなのですが、WSSEヘッダからNonceをbase64decodeした値と、Created、自分のpasswordを使ってPasswordDigestを作成してもPownce Desktopが作成したPasswordDigestと同じものにならないんです。
で、どうやらNonceを作るアルゴリズムが通常と異なるんじゃないかとPownce Supportにメールしました。
が、現状返ってきてません。WSSEでよくあるのが、仕様をはきちがえてpasswordをmd5したものを使って
base64(sha1(nonce + now + md5(password)))
と扱ったり(某○メーバブログ)、意図してNonceのランダム文字列に特殊なキーを使ったりします。
ただ、後者の特殊キーを使った場合でも、上記のようにsha1後の値は複合出来ますので、やはり今回の件はPownce側で特殊なアルゴリズムを使っているとしか考えられません。

せっかくPownceAPI.pyを作ろうと思ってたのに...
これで返事返ってきてAPI動いて、もしかしたら、API経由ならマルチバイト行けたりして...
Posted at 12:27 in web::pownce
Tagged as: API, Pownce, WSSE
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip