« つれづれなるままに | メイン | 娘、誕生日 »

2010年8月17日

●MT→Twitterへの自動投稿

家族が一足先に帰省しているため、ここ数日は家で一人きりです。

ふと思い立って、このブログを久々にメンテしてみようと。

せっかくTwitterもやってるんで、
MovableTypeに投稿したらTwitterにも自動投稿できるようにしてみました。

なんせ自前で立てたブログなので、自分で仕込まねばなりません。

方法はいくつか考えられましたが、
調べてみるとやはり先達によるすばらしいツールが存在しているので、
今回もその恩恵にあずかろうと思いました。

(※以下の内容に関して、参考にしていただいてかまいませんが、
不具合等が発生した場合も責任は負えませんので、ご了承ください)

さっそくMovableType(以下、MT)用のプラグインのPostTweetを入れて、
次にbit.lyのアカウント準備してTwitterと連携させておいて、
さてPostTweetをTwitterと連携させようとしたら、
「Net::OAuth::Simpleがサーバに見つからない」というメッセージが出て
Twitterの認証に進めず。

「MT4.1以上対応」とはあるけど新しいに越したことはないだろうし、
よしこの機会にMT5にバージョンアップするか…、
と思ってMTOS5を持ってきてさあインストール、
とその前にMT5の動作環境をチェックしたら、「MySQL5.0以上」。

使ってるサーバの環境を確認したら、MySQLのバージョンはまだ4でした。
危ない危ない。

ということで、MT5はあきらめて、
MT4の最新の4.261にバージョンアップしました。

すると「Net::OAuth::Simpleがサーバに見つからない」問題はあっさり解決。
認証も無事済み、連携も完了。
やっぱり新しいほうがいいんだなー、と思いながらMT→Twitterの投稿テスト。

ところが、今度は「Twitterへの投稿に失敗しました」のメッセージが出て投稿できず。
ドキュメントを見ながらいくつか試してみる。

すると、タイトルが日本語のときだけダメなことがわかったので、
ああこれは文字コードまわりだなと思ってMTのシステムログを見てみると、
UTF-8じゃないコードが送られてきたのでダメでしたよというような内容。
先に見ておけばよかった。やっぱりログは大事です。

実は当ブログではMTもMySQLも内部処理はEUCでやっています。
TwitterはもちろんPostTweetもUTF-8が前提で作られてるはずで、
引っかかるのも当然。

じゃあこの際、時代の流れに従って、MTもMySQLもUTF-8に変えよう!
と一念発起して、バックアップを取るべくサーバの管理画面を見たら…、
使ってるサーバのMySQLではEUCしか選択できないらしい。うーん。

何年も前のことなのでもう覚えてないけど、たぶんこの事情があったから
MTもEUCで処理するように設定したんだろうなー。

MTの中ではEUCだけ、でも外に出すときはUTF-8だけ、
万事休すかなーと思いながら調べていたら、
またこんな素敵なプラグインが。
これを入れれば、指定のコンテナタグで囲んだ部分の文字コードを変換してくれます。

さっそくこのプラグインをインストールして、
次にPostTweetがTwitterに投稿するテンプレートをタグで囲むように変更し
投稿テストしたら、日本語タイトルでも無事成功!

MTの記事編集画面でのPostTweetのメッセージ確認部分は、
「すでにUTF-8に変換されたものがEUCで表示される」ために化けるのですが、
内々のことなので大きな問題ではありません。

ということで、MT→Twitterの連携が完了しました。
使ってるサーバの動作環境での制限がある中で何とかできてよかったです。


…と、ここまで書いといてあれなんですが、
まったくTwitter活用してません。
なんか、今自分が何してるかとか、
あんまり知られたくないような(笑)。
でも、頑張ってみます。

トラックバックURL

このエントリーのトラックバックURL:
http://mattsun.jp/blog/mt-tb.cgi/340

トラックバック

» I18N Helper Plugin from shibata(hi) shokudou
PostTweetプラグイン v1.0.3でのTweetが上手く行かなかったので... [Read More]

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)