0

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";

ありがとう、

ロンダ

4

0 に答える 0