Twitterしたら、自動でMixiエコー作ったよ!! 『twitter2mixi.rb』 の記事を参考に(というかほぼそのままだが)、Twitterから、mixiエコーへ送信するようにしてみた。

mixiの微妙な閉鎖感が若干嫌で、ちょっと足が遠のきつつあったが、 辛うじてつなぎ止まったかも。

上記のスクリプトを使用する上で、私の環境だといくつかつまづいたことがあったので、 とりあえず、以下に記しておくことにする...

  1. 文字コードの問題
  2. 依存ライブラリの問題

・文字コードの問題 ソースをUTF-8-unixで書いたのだが、実行すると、

hoge@unicorn:~/bin$ ./twitter2mixi.rb
./twitter2mixi.rb:45: syntax error, unexpected tIDENTIFIER, expecting kEND
  puts "login to mixi by #{config['mixiusername']}"
             ^

と、よく分からないエラーとなる。 これは、実行時のrubyのKCODEとソースの文字コードが異なると発生する(?)様で、 twitter2mixi.rbソースの先頭の記述を以下の様に変更して対応。

1
#!/usr/bin/ruby -Ku

また、最終行近くの

  form.fields.find { |f| f.name == 'body' }.value = twitterlaststatus.toeuc

もうまく動作しなかったので、

  form.fields.find { |f| f.name == 'body' }.value = twitterlaststatus.toutf8

に、変更。

・依存ライブラリの問題

Building native extensions. This could take a while... ERROR: Error installing mechanize: ERROR: Failed to build gem native extension. (snip) checking for libxslt/xslt.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... no libxslt is missing. try 'port install libxslt' or 'yum install libxslt-devel' (snip)

というエラーが出たが、ubuntuにはそんなパッケージは無い。 で、

hoge@unicorn:~/bin$ sudo apt-cache pkgnames libxslt
libxslt-dev
libxslt1-dbg
libxslt1-dev
libxslt-ruby
libxslt1.1
libxslt1
libxsltc-java
libxslt-ruby1.8
libxslt0-dev
libxsltc-java-gcj
出たので
hoge@unicorn:~/bin$ sudo apt-get install libxslt-dev libxslt-ruby1.8
としてインストール


Comments

comments powered by Disqus