2008年4月アーカイブ
ニーズが無さそうだけど・・・
twitter、nowa、frepaのヒトコトをrubyで更新に プチプロフのヒトコト更新もコマンドラインからマルチポスト出来るようにしてみた。
apiが(多分)ないので、mechanaizeで強引にHackします。
#!/usr/bin/ruby
require 'net/http'
require 'rubygems'
require 'mechanize'
require 'kconv'
exit unless $*[0]
# update puchi-prof
agent = WWW::Mechanize.new # インスタンス生成
agent.user_agent_alias = 'Windows IE 6' # User-Agentの設定
page = agent.get('http://www.pcpf.jp/') # プチプロフにアクセス
puts page.uri
login_form = page.forms.first
login_form.fields.name('pcpf_id').value = 'user_name'
login_form.fields.name('password').value = 'password'
page = agent.submit(login_form) # フォームのsubmitボタンを押す
page = agent.get('http://my.m.pcpf.jp/status_message/')
hitokoto_form = page.forms.first
#puts hitokoto_form
hitokoto_form.fields.name('body').value = $*[0].tosjis
puts hitokoto_form.fields.name('body').value
page = agent.submit(hitokoto_form)
mechanaizeは組み込みではないので、gemで入れる必要がアリ。
これ使うと何でもアリな感じww
完全にHackしどころを間違えた感が・・・
なんとなくポスト
普段はtwitterとかnowaのヒトコトとかの更新をコマンドラインからやっています。
#!/usr/bin/ruby
require 'net/http'
exit unless $*[0]
# update twitter
req = Net::HTTP::Post.new('/statuses/update.xml')
req.basic_auth("user_name", "password")
req.body = 'status=' + URI.encode($*[0] + '[rubyからポスト]')
Net::HTTP.start('twitter.com') do |http|
res = http.request(req)
# print res.body
end
このファイルをtwit.rbで保存しておいて、パスの通った所に置いておけば
$ twit ‘ひとこと’
とするだけで更新可能。仕事の合間に更新できますw
rubyには組み込みのnet/httpが入っているのが激しく便利。print res.bodyはデバック時の時だけ有効にしています。定数化しておけばいんだけどね。そこまでニーズが無かった・・
ちなみに、nowaの更新もurlを変えるだけ。twitter.comをapi.nowa.jpに変えるだけのお手軽さ。
フレパのヒトコトもurlをwww.frepa.livedoor.comに変えるだけで更新できちゃう。















