mixiにブログを登録するとmixi日記がブログと入れ替わる。
これが、一番簡単なブログとmixiとの連携方法。
mixiのブログ設定

しかし、これだと今まで書いたmixi日記が無駄になってしまう。
これは悲しい。
さらに、過去に何度かmixi日記をブログと入れ替えたことあるのですが、やはりmixi日記のほうがレスポンス率が高い。

そこで、mixi日記を残しつつ、ブログを更新する度に自動でmixi日記にブログの更新情報を書いてくれるツールがないか探してみた。

この、リンス泥棒!― 変な寝言が忘れられないこの、リンス泥棒!― 変な寝言が忘れられない
著者:めさ&mixiコミュニティメンバー
販売元:ブログハウス
発売日:2009-06-30
おすすめ度:5.0
レビューを見る


すると、以下の記事を見つけた。
ブログ記事をmixi日記へ自動的に投稿する為のperl(cgi)プログラム | PCテクニック集
こちらのプログラムはアメブロかつミクシーの無料会員のみに対応だそうですが、ライブドアブログでもちょっと改造したら動いた。
ちなみに設置したのはtwitter2mixivoice同様「さくらインターネット」のレンタルサーバ「スタンダード」です。

さっそく設定及びインストール方法を解説。
※文中「plotfactory」のところは各ユーザーアカウントに変えてください。
  1. まずはファイルをダウンロードして解凍。
  2. 解凍されたファイルからset.cgiをテキストエディタで開く。
  3. ID「$email」、パスワード「$password」、ブログのRSS「$rss」を設定。それ以外は初期値でOK。
    ライブドアブログでは関係ないのかプログラム設置フォルダ「$serverurl」は設定する必要はありません。
  4. 次にindex.cgiをちょこっと改造。テキストエディタで開く。
  5. 本ブログへのリンクを入れたいので該当の箇所(135行と136行の間)に下記の一行を追加。
    #&error("$desb");
    $desb = $desb . $link ; # リンクを入れた←この一行を追加
    &post_diary($title,$desb);
  6. さらに、「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日記に投稿してしまったりします。
  7. FFFTPを使って全ファイルをアップロード。以前設置したtwitter2mixivoiceと同じディレクトリに「mixid」フォルダをアップ。
  8. パーミッションの設定。「index.cgi」「set.cgi」「img.cgi(おそらくライブドアでは未使用)」を755に。「time.dat」を666に。
  9. 動作確認を「Tera Term」で行う。
    送るコマンドは「/home/plotfactory/mixid/index.cgi」
  10. cronの設定。
    ブログ→mixi日記 cron
    /home/plotfactory/mixid/index.cgi 1> /dev/null
ツイッターと違ってそんなにブログは更新しませんが30分ごとにRSSを読みに行くように設定しています。

※プログラム作者さんにフィックスしていただき、上記「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;