これが、一番簡単なブログとmixiとの連携方法。
しかし、これだと今まで書いたmixi日記が無駄になってしまう。
これは悲しい。
さらに、過去に何度かmixi日記をブログと入れ替えたことあるのですが、やはりmixi日記のほうがレスポンス率が高い。
そこで、mixi日記を残しつつ、ブログを更新する度に自動でmixi日記にブログの更新情報を書いてくれるツールがないか探してみた。
この、リンス泥棒!― 変な寝言が忘れられない
著者:めさ&mixiコミュニティメンバー
販売元:ブログハウス
発売日:2009-06-30
おすすめ度:
レビューを見る
すると、以下の記事を見つけた。
□ブログ記事をmixi日記へ自動的に投稿する為のperl(cgi)プログラム | PCテクニック集
こちらのプログラムは
アメブロかつミクシーの無料会員のみに対応だそうですが、ライブドアブログでもちょっと改造したら動いた。
ちなみに設置したのはtwitter2mixivoice同様「さくらインターネット」のレンタルサーバ「スタンダード」です。
さっそく設定及びインストール方法を解説。
※文中「plotfactory」のところは各ユーザーアカウントに変えてください。
- まずはファイルをダウンロードして解凍。
- 解凍されたファイルからset.cgiをテキストエディタで開く。
- ID「$email」、パスワード「$password」、ブログのRSS「$rss」を設定。それ以外は初期値でOK。
ライブドアブログでは関係ないのかプログラム設置フォルダ「$serverurl」は設定する必要はありません。 - 次にindex.cgiをちょこっと改造。テキストエディタで開く。
- 本ブログへのリンクを入れたいので該当の箇所(135行と136行の間)に下記の一行を追加。 #&error("$desb");
$desb = $desb . $link ; # リンクを入れた←この一行を追加
&post_diary($title,$desb); - さらに、「set.cgi」と「time.dat」の場所を絶対パスに書き換える。
まず22行目
require './set.cgi';↓require '/home/plotfactory/mixid/set.cgi';そして47行目my $timefile = "time.dat";↓my $timefile = "/home/plotfactory/mixid/time.dat";これをしないと「Can't locate ./set.cgi in @INC (@INC〜」というエラーが出たり、
起動する度にRSSにある全部の記事をmixi日記に投稿してしまったりします。 - FFFTPを使って全ファイルをアップロード。以前設置したtwitter2mixivoiceと同じディレクトリに「mixid」フォルダをアップ。
- パーミッションの設定。「index.cgi」「set.cgi」「img.cgi(おそらくライブドアでは未使用)」を755に。「time.dat」を666に。
- 動作確認を「Tera Term」で行う。
送るコマンドは「/home/plotfactory/mixid/index.cgi」 - cronの設定。
/home/plotfactory/mixid/index.cgi 1> /dev/null
※プログラム作者さんにフィックスしていただき、上記「5.」「6.」はやる必要がなくなりました。(9日追記)
【2011/10/25追記】
10月12日頃のmixiの仕様変更で「mixi.pm」の一部改造が必要になっています。
製作者さんの下記サイトで解説されています。
□ WWW::Mixi の修正
WWWフォルダ内の「Mixi.pm」をテキストエディタで開き以下の部分を探します。
return ($self->cookie_jar->as_string =~ /\bSet-Cookie.*?:.*? BF_SESSION=(.*?);/) ? $1 : undef;
これを以下のように書き換えます。return ($self->cookie_jar->as_string =~ /\bSet-Cookie.*?:.*? session=(.*?);/) ? $1 : undef;
記事にして頂いたことで、バグを発見しました。
つまり、以前の
index.cgi
のままだと、cronに対応していないことが判明しました。
先ほど修正しました。有り難うございます。
この修正により、
6.
の修正は必要なくなるかもしれません。
もしお時間があるようでしたら、試して頂ければ幸いです。
PS:
ライブドアブログでは、画像の投稿の際にもしかしたら、不都合が生じる場合があるかもしれません。もしご希望でしたら、ライブドアへ正式対応してみます。