Ruby で mixi ボイスをいじってみました.
api がないので,Mechanize で適当に切り出し.
#!/usr/bin/ruby # -*- coding: utf-8 -*- require "rubygems" require "mechanize" require "nokogiri" class MixiVoice def initialize(id, pass) @id = id @pass = pass @agent = WWW::Mechanize.new end def set_proxy(host, port) @agent.set_proxy(host, port) end def login page = @agent.get("http://mixi.jp/") form = page.forms.first form["email"] = @id form["password"] = @pass form.submit end def get_timeline a = [] page = @agent.get('http://mixi.jp/recent_echo.pl') doc = Nokogiri::HTML(page.body) items = doc.xpath("id('echo')/div[2]/div[3]/table/tr") items.each do |i| id = i.xpath("td[3]/div[1]/text()") time = i.xpath("td[3]/div[2]/text()") nick = i.xpath("td[3]/div[3]/text()") comment = i.xpath("td[3]/div[4]/text()") a << [id, time, nick, comment] end return a end def voice(str) page = @agent.get('http://mixi.jp/recent_echo.pl') form = page.forms[1] form["body"] = str form.click_button end end ID = "fuga" PASS = "hoge" mv = MixiVoice.new(ID, PASS) mv.set_proxy("192.168.0.1", "3128") mv.login puts mv.get_timeline mv.voice("テスト")
タイムラインをどう使うか決めていないので,
とりあえず,配列で返しています.
ユーザ毎のタイムラインは
http://mixi.jp/list_echo.pl?id=#{id}
発言は
http://mixi.jp/view_echo.pl?id=#{id}&post_time=#{time}
あと,thumbnail も取れるようにするか.
参考
- twitterからmixiボイスにマルチポストするRubyスクリプト書いた - 5.1さらうどん
http://d.hatena.ne.jp/gigi-net/20090918/1253224665
Referrer (Inside):
[2009-12-10-2] Amebaなうを Ruby でいじってみた
comments powered by Disqus
[2009-12-10-2] Amebaなうを Ruby でいじってみた