藤本壱さんが開発された、「ブログに記事を書いたことをFacebookに投稿するプラグイン」を導入し、改造してみましたので、ご紹介します。
オリジナルのプラグインの導入方法は、こちらまたはこちら(小粋空間さん)をご覧ください。
このプラグインは非常に有効で、MovableTypeにブログの記事(またはウェブページ)を投稿すると、自動的にFacebookのウォールにアップしてくれます。
自動投稿されたイメージは、上記のようになります。
とても便利なプラグインなのですが、Facebookに投稿される画像は、プラグインの設定時に指定した、固定的なものとなります。
記事の内容によっては、その記事に関連する画像を設定して、ウォールにアップしたい場合があります。
ということで、さっそく改造してみました。0xF9F8
ファイルを所定のフォルダにアップし、最初に管理画面にアクセスすると、上記のようなメッセージが表示されるので、「アップグレード開始」を押下します。
アップグレード(データベースの設定変更)が正常に終了すると、上記のようなメッセージが表示されます。
ブログ記事の新規編集画面を開くと、右下に、上記のような項目が追加されています。サムネイル画像のURLを設定できるようになっています。
サムネイル画像の初期値は、プラグインの設定時に指定したものが、そのまま入っています。
過去に投稿した記事についても、編集画面を開き、「Facebookに公開」のチェックボックスを入れて再投稿すれば、その時点でウォールにアップしてくれます。
改造後のイメージは、上記のようになります。
記事に応じて画像を変えることで、一目でその記事の内容を推定することができ、訴求力をアップすることができます。
以下、改造のポイントです。
まずは、「config.yaml」の変更点です。
サムネイル画像のURLを格納するフィールドを、「fb_thumbnail」とします。
このフィールドを、ブログの記事(mt_entry)毎に紐付けるため、上記、4行目のように宣言します。
ここで、fb_thumbnailには、「meta」という属性を設定しています。
これは、過去のすべての記事(mt_entry)にfb_thumbnailを確保するのではなく、プラグインを導入した以降に投稿した記事(または、必要に応じて編集した過去の記事)に対してのみ、fb_thumbnailを確保するようにするためです。
(内部的には、「mt_entry_meta」にfb_thumbnailが追加されます)
つづいて、「Plugin.pm」の変更点(一部)です。
記事の編集画面で呼び出される関数(edit_entry)です。
サムネイル画像のURLを設定するため、<input>タグを追加しています。
ブログ記事を新規編集する場合には、変数「$fb_thumbnail」に、プラグインの設定時に指定した値を代入し、これをデフォルト値としています。
過去に投稿した記事を編集する場合には、デフォルト値は同じですが、mt_entryのmetaフィールド「fb_thumbnail」に値が格納されていた場合(=過去に編集した際に設定していた場合)には、$fb_thumbnailにその値を代入しています。
今回は<input>タグを使って、サムネイル画像のURLを直接設定するようにしましたが、同じ編集画面内の「ブログ記事アイテム」から、その記事に紐付けられた画像をドラッグ&ドロップできるようにすれば、もう少し便利になるかと思います。
が、とりあえずは、基本機能の実装ということで・・・。0xF9C7
これまで、MTと連携する外部関数は、いくつか書いてきましたが、MTのプラグインを作成するのは、初めての挑戦でした。著名な藤本壱さんが書かれたソースを解析してみて、とても勉強になりました。
初めまして。
ブログの記事を参考に差せていただきました。
貴重な情報ありがとうございます。
記事に記載のソースコードを書き換えましたが、URLの設定ができるようになりましたが、サムネイル画像のURLを入れて更新してもプラグインの設定のデフォルト画像が表示しています。
記載のソースコード意外に追加コードが必要なのでしょうか?
お手数ですが、ご指導いただき、お返事いただけたら光栄です。
宜しくお願いします。
soleilさん、はじめまして。返信遅くなりました。
作った時のころを思い出しながら、少し調べてみたのですが、「config.yaml」の設定で、
fb_thumbnail: vchar(255) meta
ではなく、
fb_thumbnail: vchar meta
としてみていただけますでしょうか。
soaristo様
お返事ありがとうございます。
fb_thumbnail: vchar metaに変更して試して見ましたが、
プラグインの設定してる画像が、表示しています。
ブログに使ってる画像のURLの記載でいいですよね!
何か仕様変わってるのですかね?
soaristo様の方は、問題なく画像が表示されていますか?
soleilさん
私の環境では、MTが5.13、FacebookPosterが1.01で、うまくFacebookに登録されています。
記事に記載した以外のところは変更していないのですが、おかしいですね。
FBで一度ページのサムネイルが登録されてしまうと、画像がキャッシュされてしまうようです。
http://www.koikikukan.com/archives/2012/01/27-012345.php
念のため、
https://developers.facebook.com/tools/debug/
にアクセスして、当該のページのキャッシュをクリアしてから、再度ポストしていただけますでしょうか。
(抜本的な対策にはなっていないのですが・・・)
soaristo様^^
僕の環境はMTが5.13、FacebookPosterが1.01でsoaristo様とほとんど同じですね。
ご指導頂いたように当該のページのキャッシュをクリアしてから、再度ポストしてみましたが画像の差し替えされませんでした。
又別の記事を投稿してみましが、同じく画像の差し替えできす、プラグインの画像URLを消してからポストしてみたところOGPの指定画像が表示してました。
こんな素晴らしい機能が使えないのが残念ですねぇ!
何度もソースコードを見直してみましたが違いが見つけられなく見落としがあるのかもしれませねぇ。
もし良ければsoaristo様の「Plugin.pm」を一度コピー差せて頂けないでしょうか?
12月の多様のところと思いますが、お時間の有る時で良いですのでメールに添付して頂けたら光栄です。
お手数ですが、なにとど宜しくお願いいたします。
一週間前の16日の午前中にメール送付いたしましたが、届いていますでしょうか。
soaristo様^^
添付して頂きありがとうございます。
16日の受信BOX確認したのですが、soaristo様のメールが届いていないようです。
soaristo様^^
プラグイン入れ方たら無事画像が表示しました。
色々と親切していただき感謝の気持ちで一杯です。
これでスッキリ良い年越しができます。
ありがとうございました(^o^*)/~