MovableTypeの最近のブログ記事

これまでLoudTwitterというサービスで1日分のtwitterログをブログに自動投稿していましたが、ちょっと前からLoudTwitterが動かなくなっていたので、別の方法に移行しました。
(LoudTwitterはサービス終了との噂)

t2b
1日分(前日分)のTwitterのツイートを抽出して、メールで送信するサービス。
http://t2b.utilz.jp/

MailPack
MovableTypeでメール投稿ができるようにするプラグイン。
http://www.skyarc.co.jp/engineerblog/entry/4022.html

段取りとしては、

  1. MTのpluginsディレクトリにMailPackのソースをコピー(コピー後MTにアクセスするとアップデートが動く)
  2. popでアクセスできる投稿用のメールアドレスを作成
  3. t2bのメール送信先に作成した1のメールアドレスを指定
  4. MTでメール投稿用のユーザを作成し、そのアドレスにt2bが送信するメールのFromアドレス(t2b@t2b.utilz.jp)を指定
  5. cronでMTのtoos/run-periodic-task.cgiを定期的に動くように設定

0時を過ぎた段階でt2bが前日分のtweetをまとめてメール送信し、run-periodic-taskが動くとMailPackがメールを受信して、その内容をブログ投稿してくれます。

t2bからのメールのFromとMTユーザのメールアドレスが一致するかどうかをMailPackがチェックするので、スパムが投稿されても反応しません。


本当はt2bよりtwtr2src(http://twtr2src.ogaoga.org/)のほうが使い勝手がよさそうで、これまでにもLoudTwitterが失敗した日はtwtr2srcで生成したHTMLを手動で投稿していました。
しかしtwtr2srcから送信されたメールはMailPackでは「許可されていない形式」のメールとして認識されてしまい、メールを削除して終了してしまうので、t2bにしました。twtr2src→MailPackでできている事例はあるようなんですがね。

先日こちら(MovableTypeに自作のTwitter Badgeをテンプレートモジュールで貼り付ける)の記事を頼りにMTで作ってるブログにtwitterの最新postを表示した。同じようにyonda4に記録した本のタイトルもMTで表示できないかなと思って、自分でjavascriptを書いてみた。

プログラミングのセンスはないので、至らないところがあれば各自修正してご利用ください。


まずyonda4のapiで取得できるJSONをリスト形式に加工するスクリプトを書きます。amazonアソシエイトのIDは自分のものに変えてください。
あとフォントサイズとか直に書いちゃってるので、うまくやってください。
yonda4の投稿ルールとして本のタイトルのあとは半角スペースで区切ってコメントが入っているのを想定してます。

yonda4.js


var associateId = "rj2001net-22";
function yonda4Callback(getbooks) {
var statusHTML = [];
for (var i=0; i<getbooks.value.items.length; i++){
var username = getbooks.value.items[i].user;
var descriptionString = "";
var descriptionArray = getbooks.value.items[i].description.split(" ");
if( 1 in descriptionArray ) { descriptionString = descriptionArray[1]; }
statusHTML.push('<li><a href="http://www.amazon.co.jp/exec/obidos/ASIN/' + getbooks.value.items[i].asin + '/' + associateId + '/">' + getbooks.value.items[i].title + '</a> <span style="font-size:85%">' + descriptionString + '</span></li>');
}
document.getElementById('yonda4_list').innerHTML = statusHTML.join('');
}

そしてフッターテンプレートに以下のように入れます。黄色の部分は自分のtwitterアカウントを入れます。またnumのところの数字が取得するタイトルの数なので自由に変えてください。

<script type="text/javascript" src="http://rj2001.net/js/yonda4.js"></script> 
<script type="text/javascript" src="http://yonda4.com/api/user/rikunaeiji?callback=yonda4Callback&num=5"></script> 

また本のタイトルを表示したいテンプレートに以下のように入れます。

<ul id="yonda4_list"></ul>

これでMTを再構築すれば表示されるはずです。
冒頭の記事ではMTのタグをうまく使って、badgeを表示するときだけフッターに上記javascriptがインポートされるようにしたりしてますので、参考に。


最近、技術的なことから興味が薄れていたんだけど、twitterを始めてみて、いろんなサービスが自由な発想で生みだされているのを知って、またちょっと興味が戻ってきたかもしれない。

最近読んだ本

 

アーカイブ

アイテム

  • IMG_0187.JPG
  • IMG_0186.JPG
  • IMG_0178.JPG
  • CA3D0144.JPG
  • CA3D0143.JPG
  • CA3D0131.JPG
  • CA3D0129.JPG
  • CA3D0133.JPG
  • 1208727717_61.jpg
  • 1206215628_153.jpg