WX320KからTwitterへ直接Update
ケータイからTwitterへの投稿は、メール等で別サーバ経由のAPI投稿するのが一般的のようだ。
しかし第三者にパスワードを蒐集される可能性は避けたいし、かといって自分でサーバを建てるのは面倒。なのでWX320K単体で送れるようにしてみた。
以下のHTMLファイルをWX320K内に保存し、ローカルからPOSTで投稿する。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "xhtml-basic10.dtd"> <html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>Twitter: What are you doing?</title> <script type="text/javascript"> //<![CDATA[ function checkLength() { var maxchars = 140; if(document.twitterForm.status.value.length > maxchars){ return confirm(maxchars+'bytesを越えてますがよろしいですか?'); } return true; } //]]> </script> </head> <body> <h3>What are you doing?</h3> <form name="twitterForm" method="post" action="http://twitter.com/statuses/update.xml"> <textarea name="status" rows="7" cols="23"></textarea> <br /> <input type="submit" value="Update" onclick="javascript:return checkLength()" /> </form> </body> </html>
このhtmlをweb上に置いて投稿した場合は他サイトからのPOSTと見做されて投稿できないが、WX320Kのローカルに置くと、リファラーがfile://になる(んだと思う)ので直接投稿ができるようだ。
WX320Kに搭載されてるOpera7はXHR非対応なので普通にPOST。結果は処理できないので生resultが返ってくるのがちょっと格好悪い。XHR対応なフルブラウザ搭載ケータイならもっとスマートにできるだろう。
BASIC認証が毎回表示されてウザイ方は、
の部分を、
に変えれば解決。ただしセキュリティ的に問題あり。リファラーで漏れる場合がありますよ。
ちょっとセキュアにしたければ、SSL経由に変えてやる。
ただし、SSL通信開始などのダイアログが出てくるのでホップ数は増える。また、https経由UpdateはTwitter API Documentationには書かれてないので非公式。それにSSLでもリファラーで漏れる可能性がある。認証周りは再検討の余地有り。
WX320Kでと書いたが、ローカルにHTMLを保存できるケータイなら使えるはず。使いにくい場合は好きなように改造してください。