Apr 11, 2007

bluewindからtwitterを更新できるようにRubyでシンプルなクライアントを書いた

bluewindのコマンドに登録しておいて詳細→パラメータでidとpassword入れた状態にしてbluewindで[twitter ほげほげ]とか入れると更新されるようにしてみた。exerbでexe化しようとしたらrb_io_set_nonblockが見つからないとかエラーが出たけどexerbのバージョンを4.10にしたら上手くいった。

で、Windowsで使うならJavaScriptの方が楽だった。
http://muumoo.jp/news/2007/04/10/0twitterclient.html

require 'net/http'
require 'kconv'
user = ARGV.shift
pass = ARGV.shift
status = ARGV.join(" ") || ""
status_utf8 = status.kconv(Kconv::UTF8, Kconv::SJIS);

# hack for jp
status_utf8 += " ."

Net::HTTP.version_1_2
req = Net::HTTP::Post.new('/statuses/update.json')
req.basic_auth user,pass
req.body = 'status=' + URI.encode(status_utf8)

Net::HTTP.start('twitter.com',80) {|http|
  res = http.request(req)
  print res.body
}


芸がないのでなでしこで書いた。10行です。
認証は 「username:password」を BASE64エンコード
「いまなにしてる?」と 尋ねる
もしそれが空ならば終わる
コメントはそれ
コメントに 「 .」を 追加
コメントはコメントをUTF8変換
コメントはコメントをURLエンコード
クエリは「status=」。クエリにコメントを追加
ヘッダは「Authorization: Basic 」。ヘッダに認証を追加
ヘッダと クエリを 「http://twitter.com/statuses/update.json」へ HTTPポスト
Posted at 20:38 | WriteBacks (11) | Edit
Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.