Facebookの「いいね!」の中身をのぞいてみよう

こんにちは。facebookチーム@dice_kunです。
これからfacebookについて技術的なことや、ちょっとした話題など書いて行こうと思います。
これを読めば、あなたも6億人がかかわる巨大ソーシャルグラフを意のままに操れるようになるとかならないとか。。。

さて今回は少し「いいね」ボタンの話をしてみようと思います。

最近良く見かけるようになった「いいね」ボタン。
このブログにも「いいね」が記事ごとについていますよね。
しかし、これは一体何に対して「いいね」しているのでしょうか。


「いいね」ができるものの種類は
facebook page(旧ファンページ)、イベント、アプリ、写真、アルバム、ノート、動画、リンク、などなどです

ここでは、写真とリンクについてご紹介します。
ここからはぜひご紹介するリンク先に飛んで、実物を見ながら(気に入ったら「いいね」しながら)読んでみてください。

まず、写真
http://www.facebook.com/photo.php?fbid=203685519654945
写真の下には「いいね」ボタンとコメント欄があります。
そしてこれに対して「いいね」を押すと、○○さんが「いいね」と言っています、というメッセージが友達のニュースフィードに流れる訳です。

写真をアップロードした以外は何もしていませんが、「いいね」やコメントなどの機能がしっかりついて、ニュースフィードにも必要な情報が流れます。
facebook内でアップロードするあらゆるオブジェクトにはこのような機能がついて来るのです。
それぞれのオブジェクトには固有のIDがついていて(この写真は203685519654945)このIDに「いいね」やコメントなどの情報が結び付けられています。
http://graph.facebook.com/203685519654945 とやると写真の基本情報が、http://graph.facebook.com/203685519654945/likes とやると写真に「いいね」をした人の情報が取得できてしまいます。)

それに対して外部リンクだけは少し異質です。
もともとfacebookのオブジェクトではないので「いいね」ボタンがありません、コメントもできません。固有のIDもありません。
しかし、野心家のfacebookは外部のwebページですら取り込んでしまおうという発想でopen graph protocolを編み出しました。
まずURLそのものを固有のIDとして扱い、そこに「いいね」を結び付けます。
(細かい話は省きますが「いいね」ボタンはここで作成できますhttp://developers.facebook.com/docs/reference/plugins/like/
例えば、本ブログのgc研究員の記事「Rails3で始めるRuby on Rails入門 第0回 フレームワークとは?」に「いいね」を押したら(http://d.hatena.ne.jp/glpgsinc/20110501/1304233995)というURLに対して「いいね」をしたことになります。
これが、冒頭の質問の答えです。

しかし、このURLだけではfacebookのオブジェクトと呼ぶには少し物足りません。
友達のニュースフィードにリンクだけ流しても味気ないですよね。イメージ画像、タイトル、説明文くらいはあったほうがいいです。
ということで、その情報をタグでhtmlに埋め込んで、facebookのオブジェクトに近づけているというのがopen graph protocolのミソなのです。

<meta property="og:title" content="Galapagos Blog"/>
<meta property="og:image" content="画像のURL"/>
<meta property="og:description" content="ガラパゴスの技術ブログです。"/>

*なお、現在ガラパゴスブログはこのようなタグを埋め込んでいません。
そのようなページに対して、facebookは適当に空気を読んでその辺にある画像と文章を使ってくれます。
私が「いいね」を押したgc研究員の記事はこのように紹介されていました。

おっと、アルバイトのTwitterアイコンが選ばれてしまったようです(笑)