zenback導入、Facebook連携など

投稿: 2012年1月2日

昨年末に久々にこのブログに投稿したわけだけど、久々に管理ページにアクセスしてみたらエラーが出てログインすらできなくなっていた。さらに、公開ページでもDelicious上でのブックマーク数を表示する自作のツールが壊れてエラーが出ていたり、とにかくひどい放置のされようだった。そこで、エラーを修復するついでに、はてなブックマークやLivedoorクリップの数を出す自作ツールも一掃して、かつFacebook関連のボタンを表示したりするようにしてみた。

最初は、もうソーシャル・ブックマーク系のものは一掃して、Google Plusの+1、FacebookのLike、TwitterのTweetボタンを表示すればいいや、というくらいに考えていた。いろいろと調べてみたのだけど、それぞれのボタンに関して、いろいろオプションを設定したりすると必要な幅が変わってきたりして、レイアウトを考えるのがどんどん面倒になってきた。それで、以前登録だけして放置していたzenbackというサービスを思い出して、これを使って楽をすることにした。

zenbackを使うこと自体はきわめて簡単だ。zenbackのサイトに行って、オプションを選択して、生成されるJavaScriptのコードを適当な場所に貼り付ければ完了だ。もちろんCSSを調整して視覚的な調整をしたりすることもできるので、その気になればレイアウトとか配色とかも調整できるのだけど、それをやりたくないからzenbackを使うことにしたわけで、とりあえずはデフォルトのままで使うことにした。本当は右側の検索の下あたりにボタン類だけ配置した方が良いような気がしているのだけど、この手のものはちゃんとできているのかどうかの確認も難しいので、とりあえずは見送りということにした。

当初はこれだけやって満足する予定だったのだけど、実際に試しにブログの適当なページをFacebook上で共有してみたところ、どうもよろしくないことが分かった。というのは、共有した時にFacebook上に表示されるページの抜粋が、何もしないとページの冒頭のテキストになってしまうのだ。このブログの場合だと、「日々の出来事やその感想......」というテキストになり、どのページを共有してもこのテキストが出てしまうことになる。これではせっかく誰かがFacebook上で共有してくれても、それを見た人が「お、このページ見てみよう」とは思わないだろうから、やはり記事本文の冒頭部分が出るようにしたい。

ちょっと調べてみると、Facebookのこのヘルプページが見つかった。これを見ると、meta要素を追加することで上記の問題が解決できる、ということが分かった。ついでに分かったことは、適切にmeta要素を追加することで、そのページとFacebookのアカウントやFacebookアプリケーションを関連付けることができるということだ。この関連付けをしておくと、Insightsという機能を使って、Likeボタンのクリックに関するデータの解析なんかができる。このブログでそんなデータを見ても大したことはなくて、「ふーん、面白いじゃん」というくらいのものなのだけど、積極的にFacebookを活用したいサイトのウェブマスターなんかにとっては、かなり便利な機能だと思う。

ところで、meta要素をあれこれ書き替えた後、その変更をFacebookに明示的に認識させないと、Facebookが持っているページのデータには反映されないらしいので注意が必要だ。前述のヘルプによると、ページの管理者として関連付けられているアカウント保持者がLikeボタンを押すか、Facebook URL LinterでURLを指定して読み込ませるか、そのいずれかで明示的にページ情報の更新をさせることができるということだ。いろいろと考えると、curlのようなコマンドを使って、後者の方法でまとめて複数ページを処理するのが現実的だと思う。

実はあまりマジメにドキュメントを読んでいないので、Facebook対応については果たしてこれで良いのかよく分からない点も多いのだけれど、とりあえずしばらくはこれで運用してみようと思う。Facebook、Twitter、Google+などのボタンについては、気が向いたらzenbackに頼らない方法に切り替えることも考えたいと思うけど、これもしばらくはこのままやってみようと思う。何にしても、もう少し頻繁にブログ書かないと、こういうのいくらやっても無意味だと思うし。