facebookAPIでメンションタギングをするには

facebookの投稿によるタグ付にはいくつか種類があります。

  1. 投稿写真にタグ付
  2. フィード投稿時にタグ付(○○と一緒にいます)
  3. 投稿時@hogehogeと書き込んでタグ付

その中でもこの3番の方法を、facebookではMentionTagging(メンションタギング)と呼んでいます。
今回は、このメンションタギングをAPIから行う方法をまとめます。

OpenGraphを使う

このメンションタギングをGraphAPIから行う方法は、現時点で提供されていません。
唯一OpenGraphを使用することにより、実現が可能です。

※OpenGraphについては今回は割愛します。

OpenGraphのAPI実行時、「message」というパラメータをでテキストを渡します。
その時、あるフォーマットに沿っていれば、文中にユーザー名を表示しそのユーザーに通知が飛ぶようになります。

フォーマット例1

ユーザーIDを使用する

@[100001450850021]

フォーマット例2

プロフィールURLを使用する

@[http://www.facebook.com/hiroki.itani]

上記のどちらかのフォーマットでテキストを渡せば、該当するユーザー名に置き換わります。

実際に試してみた

curl -F 'access_token=YOUR_ACCESS_TOKEN' 
     -F 'recipe=http://www.example.com/pizza.html' 
     -F 'message= hogehoge@[http://www.facebook.com/hiroki.yamamoto.568632]' 
        'https://graph.facebook.com/me/recipezilla:cook'

見え方としてはこんな感じ。


設計ガイドライン

公式ドキュメントを読むと、UIの設計ガイドラインが書いてあります。

どうも、メンションタギングを使う場合は明確に言及し、ユーザーに使用するかどうかをしっかりと操作させないといけないようです。

facebookはこのガイドラインに従うことを義務付けています。

勝手にメンションタギングを使って投稿することは許さないっぽいですね。
従わない場合は殺られるのみでしょうか。。。

その他注意点

  • タグ付けされたユーザーがアクションを生成したユーザーの友人でない場合
    • アクションはそのまま公開されるが、タグを付けられたユーザーの名前がハイパーリンクされず、通知は送信されない。
  • アクションごとのメンションタグの最大数
    • 一度に10人までが上限

まとめ

用法・容量を守って正しく使ったほうがよさそうですね。
OpenGraphはまだ全然使いこなせていないので、もっといろいろと触ってみないと。