たいやきブログ

mail to tsuyoshi.ogawa[a]gmail.com if you have some question!

FacebookでGraph API経由で友達のWallにポストできなくなるよ(1)

問題

Graph API経由で友達のWallにポストできなくなる 

対策

・Feed Dialogを表示する

・user mentions tagging or action taggingで対応する

 まず、以下を確認ください。

https://developers.facebook.com/roadmap/

2012/2/6のRemoving ability to post to friends walls via Graph APIとあるところです。これにより、友達への通知をその友達へのWallポストに依存しいてるアプリは要対応なわけです。

私が担当している某アプリはこの影響をもろかぶりしていたので、正月休みを使って対応しました。上記2つの対策は、Facebook側が推奨している対策であり、一応、それに従って自分のアプリがどれで対応するのがベストかをまず検討する必要があります。

今回は、私が対応したMention Taggingについて解説してみます。

 Mention TaggingとはTwitterのmentionと似たようなもので、FBのWallポストフォームで"@"のあとに文字を入力するとでてくるインクリサーチ的なあれです。ポストすると、その部分がリンクになり、相手にも通知がいく仕組みになっています。つまり、相手のWallにはポストできないけど自分のWallにMention TaggingでポストすればMentionされた人に通知いくから、今後はそっちを使ってねということなのでしょう。

 さて、Mention TaggingAPIで実現するにはOpen Graphについて知る必要があります。正確な情報はOfficialのリンクを一読してほしいのですが、簡単にいうと、英語の第3文型(SVO)だと私は理解しています。

  • S - Open Graph上のNode(点)のひとつであるFacebookユーザ
  • V - ユーザがどんなActionをしたかに相当するもので、一番有名なのはLike
  • O - Actionの対象で、具体的にいうとOpen Graphのmetaタグが埋め込まれたURL

 つまり、AさんがあるBlog記事BaをLikeするとそこで、SVOが完結します。Bさんが同じBlog記事BaをLikeすると、AさんとBさんがBaを介してOpen Graph上でつながるというわけです。Open GraphとはFacebookユーザの行動をグラフ化したものにほかなりません。Open GraphはNodeとしてFacebookユーザとAction対象のURLが存在し、これらを結ぶEdgeとしてActionが定義されており、この3つで構成されています。

話が脱線しましたが、これさえ押さえておけばあとはFacebookが指定した手順を踏むだけでMention Taggingが利用できるようになります。また、なんでその作業が必要なのかも理解できるはずです。

必要なことは、ActionとObjectを定義すること。この2つです。Facebookは例としてCookとRecipeというActionとObjectで説明しています。あなたも自分のアプリに適したActionとObjectを考えればよいのです。たとえば、あなたがHuluの開発担当者であれば、watchとtv(or movie)、サッカーアプリならplayとgame、Cookpadならpost(or read, cook)とrecipeなどでしょうか。

今回はMention Taggingについてその概要を説明をしました。次回は、実際にActionとObjectを作成するところ解説したいと思います。