Open Graph Followsの和訳です。6月28日にOpen Graphのビルトインアクションとして追加されたfollowアクションを紹介しています。独自のOpen Graphアクションを定義する際には一般的で簡潔な動詞を指定するよう勧められていますが、そうして色々なアプリで定義された利用頻度の高いアクションを、Facebook Platformが順次ビルトインアクションとして取り込んでいる印象です。ビルトインアクションとして登録された場合、それまで独自で定義していたアクションからビルトインアクションへの切り替えを強制されますが、Facebook上で最適に表示・拡散されるなどの利点があります。


以下、2012年6月27日 14:45更新分までの本文です。

Facebook上でユーザ投稿を購読するのと同様に、アプリ上での他ユーザのOpen Graphアクティビティをフォローすることができるようになりました。たとえば、映画のレビューサイトでは、ユーザはお気に入りのレビュアーをフォローすることができます。アプリ上でユーザが他ユーザをフォローすると、フォロワーとフォロー相手がFacebookで友だちではなくても、フォロワーのニュースフィードにはフォロー相手の該当アプリでのアクティビティが流れるようになります。(ただし、アクティビティのプライバシー設定で閲覧が許可されている場合に限ります。)



attachment




Publishing Follow Actions

フォロー関係を成立させるには、ビルトインのog.followsアクションを使います。これを使う場合には、App Dashboardで先に設定してください。



attachment2


設定が完了してアクションがアプリに追加されたら、Facebookに申請します(ただし、他のアクションと同じく、申請が通る前でもアプリ管理者, 開発者, テスターはアクションを利用できます)。ユーザのアクティビティをフォローするには以下のエンドポイントにHTTP POSTリクエストを送ります。

https://graph.facebook.com/FOLLOWER_UID/og.follows

FOLLOWER_UIDはフォロワーになるユーザのFacebook User IDです。ユーザのアクセストークンからユーザを割り出すことができるため、FOLLOWER_UIDの代わりにmeというエイリアスを使うことも可能です。

https://graph.facebook.com/me/og.follows

リクエスト時には、Facebook UER IDもしくはURLを示すprofileフィールドも指定します。

profile=8903343
profile=https://www.facebook.com/ola

ここで指定するURLはfacebook.comのURLである必要はなく、以下のような指定もできます。

profile=http://www.rottentomatoes.com/celebrity/tom_hanks/

この場合、指定されたページのメタタグにはfb:profile_idが記述され、Facebook IDが指定されている必要があります。

<meta property="fb:profile_id" content="lbRw_a8fwsz8u7a_-iL5bCxjJ8w" />

このfb:profile_idにはユーザのthird_party_idを指定することをお勧めします。これはGraph APIのUserオブジェクトにアクセスする際に ?fields=third_party_id を追加することで取得できます。

このメタタグは必須ではなく、これが無くてもfollowアクションは成立しますが、その場合はフォロワーのニュースフィードにはアクティビティは流れません。

followが成功すると、購読IDが以下のように返されます。

{
  "id": "10101357697814503"
}

Reading Follow Actions

以下のエンドポイントにHTTP GETリクエストを送信することで、ユーザがフォローしている相手を取得することができます。

https://graph.facebook.com/FOLLOWER_ID/og.follows
FOLLOWER_IDは先ほど述べたようにmeというエイリアスを指定するとこもできます。返り値は、JSONエンコードされたフォロー相手情報の配列です。
{
  "data": [
    {
      "id": "10101394432772353", 
      "from": {
        "id": "1207059", 
        "name": "Dhiren Patel"
      }, 
      "start_time": "2012-06-27T20:40:16+0000", 
      "end_time": "2012-06-27T20:40:16+0000", 
      "publish_time": "2012-06-27T20:40:16+0000", 
      "application": {
        "id": "138483919580948", 
        "name": "Social Cafe"
      }, 
      "data": {
        "profile": {
          "id": "1681", 
          "url": "https://www.facebook.com/boz", 
          "type": "profile", 
          "title": "Boz"
        }
      }, 
      . . . 

Notifications and Stories for Follow Activity

アプリ上でユーザが他ユーザをフォローすると、フォロワーの最近のアクティビティ欄にフォローアクティビティが追加されます。



attachment3


また、フォロワーの通知欄には、アプリ上で誰かをフォローした旨を伝える通知が流れます。



attachment4


注意:通知はfb:profile_idメタタグが指定された場合で、なおかつアプリをインストール済の場合にのみ流れます。

ユーザAとユーザBが友だちであった場合、ニュースフィードに流れる内容は変わりません。その場合、フォロワーの通知欄には何も流れず、ただ最近のアクティビティ欄にフォローアクティビティが追加されます。また、フォローにはpublish_actionsパーミッションが必要です。

フォローが成立すると、フォロー相手がアプリ上でアクションを行った場合、それがリアルタイムフィードとニュースフィードに流れます。



attachment5



attachment6


ユーザが他ユーザをフォローすると、https://www.facebook.com/<username>/subscribedtoにフォロー相手が追加されます。(ここでは購読とフォローが同じ物として扱われています。)

facebook.com上での購読と同様、ユーザはフォロー相手の投稿に対していいね!やコメントをすることができます。ただし、コメントできるのはフォロー相手がプライバシー設定で許可している場合のみです。


Un-Following

フォローを解除するには、以下のエンドポイントにHTTP DELETEリクエストを送信します。

https://graph.facebook.com/購読ID

解除に成功すればtrue、失敗すればエラーが返されます。