QA@IT

FacebookのGraph APIで「me/likes」を取得したのですが、「いいね」をつけたサイトの情報が含まれていません

2769 PV

FacebookのGraph APIを使って、「いいね」をつけたサイトのURLを取得しようと試みています。

https://graph.facebook.com/me/likes?access_token=アクセストークン

にGETリクエストを送りました。しかし、レスポンスに含まれているのはFacebookページやアプリ、プロフィールに書いた好きなミュージシャン等のみです。「いいね」をつけたサイトの情報が含まれていません。どうすれば「いいね」をつけたサイトのURLが取得できるのでしょうか?

"user_likes" のパーミッションはすでに取得しました。

回答

Graph APIの "<ユーザID>/likes" で取得できるのは、FacebookページおよびOGP (Open Graph Protocol) によってFacebookページやFacebookアプリと関連付けられたWebサイトのみです。

OGPタグの埋めこまれていない一般的なWebサイトへの「いいね」は、FQLを使ってurl_likeテーブルを検索することで取得できます。

参考: http://developers.facebook.com/docs/reference/fql/url_like/

SELECT url FROM url_like WHERE user_id=<ユーザID>

といったクエリで検索すると、

{  "data": [  
    {  
      "url": "http://www.example.com/  
    },  
    {  
      "url": "http://……"  
    },  
    // 略
  ]  
}

といった結果が得られます。FQLを利用するには、

https://graph.facebook.com/fql?q=SELECT%20url%20FROM%20url_like%20WHERE%20user_id=me()&access_token=<アクセストークン>

のようなGETリクエストを発行します。

編集 履歴 (2)
ウォッチ

この質問への回答やコメントをメールでお知らせします。