こんな感じでツイートしたいとずっと思っていたのですが、やり方が解らず幾星霜。

31_01.jpg

MovableTypeでもエムロジックのプラグイン「PostTweet」と使えば、ちょっとしたカスタマイズで実現できると言うことに今さらながら気付いたので実装してみました。

「PostTweet」のダウンロードはこちらから。
エムロジック放課後プロジェクト: PostTweet アーカイブ

インストール・設定にはドキュメントも参照してください。
PostTweetプラグイン


フォーマットテンプレート

設定したフォーマットテンプレートはこんな感じです。

<mt:setvar name="title_len" value="140" />
<mt:setvarblock name="title"><mt:If tag="EntryDataTweetComment"><mt:EntryDataTweetComment></mt:If> [<mt:blogname remove_html="1" />] <mt:entrytitle remove_html="1" /></mt:setvarblock>
<mt:setvarblock name="link"> - <mt:entryshortenedpermalink /></mt:setvarblock>
<mt:setvarblock name="link_len"><mt:var name="link" count_characters="1" /></mt:setvarblock>
<mt:setvar name="title_len" op="-" value="$link_len" />
<mt:var name="title" trim_to="$title_len" /><mt:var name="link" />

カスタムフィールド「EntryDataTweetComment」を使用しています。

当初はTwitter向けコメントに「概要」を利用しようとしていたのですが、

<mt:setvar name="title_len" value="140" />
<mt:setvarblock name="title"><mt:If tag="EntryExcerpt"><mt:entryExcerpt /></mt:if> [<mt:blogname remove_html="1" />] <mt:entrytitle remove_html="1" /></mt:setvarblock>
<mt:setvarblock name="link"> - <mt:entryshortenedpermalink /></mt:setvarblock>
<mt:setvarblock name="link_len"><mt:var name="link" count_characters="1" /></mt:setvarblock>
<mt:setvar name="title_len" op="-" value="$link_len" />
<mt:var name="title" trim_to="$title_len" /><mt:var name="link" />

これだと何も入力しない場合に本文のダイジェストがTweetされてしまうことが解ったので断念。

その点カスタムフィールドであれば、

  • 規定値を設定できる
  • 何も入力しない場合は空になる

という特徴があるためこっちのが便利だねと言うことで。



記事投稿時のフロー

  1. 記事本文を書く
  2. カスタムフィールド「Tweetコメント」に一言コメントを書く
  3. 記事を公開 → 自動的にTweetされる

設定「ブログ記事/ウェブページの状態を未公開(下書き)から公開に変更した場合に投稿します。」にチェックを入れているため、最初に公開したときか、下書き→公開した場合にのみTweetします。


今までは公開した記事をバッチ処理で拾ってDB化しはてなブックマークに投稿、はてなブックマークからTwitterにポストということをしていたため、コメントを付けるためにははてなブックマークコメントを利用する必要がありました。でも更新ツイートに記載したい内容と、はてなブックマークコメントに記載したい内容は必ずしも同じでは無いため逡巡していたのでした。

これで解決。




それにしてもカスタムフィールドは便利

ブログ記事の一番下に表示されていることがある、商品紹介リンクもカスタムフィールドでASINを入力して実現しています。

データベースのフィールドと結合していて本来ではカスタマイズしづらい「記事要素」を拡張できるようにしたこの機能は凄いですね。改めて。インポート/エクスポートするときには要注意ですけども。