500 エラーが発生する次のクエリがあります。パーミッションが原因だと思いますが、user_likes と friends_likes パーミッションが設定されています。
SELECT user_id, url FROM url_like WHERE strpos(url,'myurl') AND user_id IN (SELECT uid2 FROM friend WHERE uid1 = me())
これはうまくいきます。
SELECT user_id, url FROM url_like WHERE strpos(url,'myurl') AND user_id = me()
特定のURLで友達のいいねを取得できない理由はありますか? 私はそれができることを知っています。データを表示する他のサイトをたくさん見てきました。
私はこれをc#でやっています。最初のクエリが機能するまで、現時点では 2 番目のクエリをコメントアウトしています。
dynamic resultLikes = fb.Get("fql",
new
{
q = new
{
urlLikes = "SELECT user_id, url FROM url_like WHERE strpos(url,'myUrl') AND user_id IN (SELECT uid2 FROM friend WHERE uid1 = me())",
//resultLike = "SELECT uid, name, pic_small FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me() AND (uid2 IN (SELECT user_id FROM #urlLikes)))",
}
});
誰かが何が間違っているのかを理解してくれることを期待して、コードを投稿します。私はそれを2つの異なる方法で試しました。
最初に Httpwebrequest を使用します。
private void GetMyLikes()
{
//string URL = "https://graph.facebook.com/" + userID + "/picture";
string url = String.Format("https://api.facebook.com/method/fql.query?query=SELECT user_id, url FROM url_like WHERE user_id IN (SELECT uid2 FROM friend WHERE uid1 = me())&access_token={0}&format=json", accessToken);
HttpWebRequest req = (System.Net.HttpWebRequest)HttpWebRequest.Create(url);
req.AllowWriteStreamBuffering = true;
req.Timeout = 200000;
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
StreamReader reader = new StreamReader(resp.GetResponseStream());
string likes = reader.ReadToEnd();
resp.Close();
}
C# SDK の使用
private void getFriendsProductLikes()
{
if (!string.IsNullOrWhiteSpace(accessToken))
{
FacebookClient fb = new FacebookClient(accessToken);
dynamic resultLikes = fb.Get("fql", new { q = "SELECT user_id, url FROM url_like WHERE user_id IN (SELECT uid2 FROM friend WHERE uid1 = me())" });
}
}
現在、必要以上の権限が設定されている可能性があります。
public const string SCOPE = "user_likes,friends_likes,user_status,friends_status,publish_actions,user_location,friends_location,user_checkins,friends_checkins,read_stream,user_activities,friends_activities,user_birthday,friends_birthday,user_about_me";
ありがとう、
ロンダ