作者:上村崇 フリーランスのIT系エンジニア
twitter:@uemera facebook:uemura

twitterからmixiボイスへの自動投稿


こんなスクリプトが公開されていたので試してみました。

twitterからmixiボイスにマルチポストするRubyスクリプト書いた
http://d.hatena.ne.jp/gigi-net/20090918/1253224665

自分のサーバーはRubyが使えると思っていたのですが、入ってなかったのでまずRubyをサーバーにインストールしました。
しかしハマりました。

・ruby単体をインストールしただけではこのスクリプトは動かない。
・どうやらライブラリも含めインストールする必要があるらしい。
・Mechanizeというライブラリをインストールする必要があるらしい。
・rubygemというライブラリインストール用のコマンドがある。
・でもaptitude(debianパッケージ管理システム)経由でもrubyライブラリはインストールできる。
・aptitudeとrubygemのどっちを使えばいいんだ?どっちからでも可?
・とりあえずrubygemからmechanizeをインストール
 →うまく動かない
・それならばaptitudeからmechanizeをインストール
 →うまく動かない

# ./test.rb
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- Mechanize (LoadError)
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require’
from ./test.rb:3

もしかして入れる順番とか関係ある?同じライブラリを上書きしてておかしくなってる?
とかいろいろ考えたんだけど、ふと、
パッケージ名がmechanizeで、インストールされたスクリプト名はmechanize.rb
エラーはMechanize
で出ているので、もしやと思い

/usr/lib/ruby/mechanize.rb

のあるディレクトリで

ln -s mechanize.rb Mechanize.rb

としたらうまく通りました。

インストール方法が間違ってたんかな?でもこれはくだらない不具合のような気が…
debian+ruby環境でしか起こらないのかどうかも気になります。

ネットで調べてみたところでは、同じような現象に悩んでいる人はいなさそうなので固有の問題かも知れん。

それにしても、Rubyではmixiにログインするコードはこれだけで済むのか。美しいな。

page = agent.get(“http://mixi.jp/”)
form = page.forms.first
form[“email”] = mixi_username
form[“password”] = mixi_password
form.submit

RubyかわいいよRuby.

関連記事


Linux debianでRAID(ミラーリング)構築。mdadmとpartedで
mdadmによるRAID (ミラーリング)構成手順です。ディスクが1台壊れたのでRAIDを組み直しました。環境はLinux Debian 9.11 (stretch) partedやmdadmコマンドで構築します。

Postfixメールサーバー:送信不可のユーザーを設定する
メールサーバーPostfixにて、送受信ができないユーザーを設定をする方法です。Linux、debian環境です。特定のメールアドレスを送受信不可にします。メールを許可しないLinuxユーザーを作るときに有効です。

Web開発・Web制作のツールや用語を初心者向けに大量紹介。これだけ知っておけば安心。
Webページ製作やWebのシステム開発ではいろんなツールやテクニック、用語を使いますが、全体像がなかなか掴みにくいと思ったので、初心者向けに用語をたくさんまとめました。これさえ押さえておけば業界の常識用語はだいたい網羅できると思います。

KVM仮想マシンをWebからアクセスできるKimchiをdebianにインストール
自宅サーバーにてKVMの仮想マシンを動かしていますが、外からでもリモートで操作できるようにkimchiを導入しました。 GitHub – kimchi-project/kimchi: An HTML5 man …

Linuxの権限について解説。setuidとかsetgidとかスティッキービットとか
setuidとかsetgidとかスティッキービットの解説です。Linuxのこれらの機能については考え方が難しいですが、setuidは「一般ユーザーがroot権限で動かすことができる仕組み」です。setgidはそのグループ版です。詳細なメカニズムを解説します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です