无法使用Facebook C#SDK或HTTPWebRequest删除Facebook请求(用户到用户或应用程序到用户请求)

时间:2013-11-20 02:07:17

标签: c# asp.net facebook-graph-api facebook-javascript-sdk facebook-c#-sdk

我已经尝试了几乎所有我能想到的变化,但似乎没有任何效果。我试图使用C#SDK的delete方法或使用HTTPWebRequest方法简单地删除Facebook请求(用户到用户或app-to-user请求)。当用户点击请求时,我从URL中获取“request_ids”querystring参数,并将其用于Facebook用户ID和App Access Token中的方法,两者都存储在会话变量中。以下是我尝试过的一些变化(不包括一些),但由于某些原因,这些变化都不起作用。我使用的是ASP.NET 3.5,因此我所拥有的C#SDK是ASP.NET 3.5版本(不能使用动态类型)。任何帮助表示赞赏!

选项#1

public static void deleteFbRequest(string facebookRequestId, string appAccessToken, string fbuserid) 
    {
        var fb = new FacebookClient(); 
        var url = "https://graph.facebook.com/" + fbuserid + "?access_token=" + appAccessToken;
        fb.Delete((String.Format(url, facebookRequestId + "_" + fbuserid, fb.AccessToken)));
    }

选项#2

public static void deleteFbRequest(string facebookRequestId, string appAccessToken, string fbuserid) 
    {
        var fb = new FacebookClient(); 
        var result = fb.Delete(facebookRequestId.ToString() + "_" + fbuserid.ToString());
    }

选项#3

public static void deleteFbRequest(string facebookRequestId, string appAccessToken, string fbuserid)
    {
        var fb = new FacebookClient(appAccessToken);
        var parameters = new Dictionary<string, object>();
        parameters["access_token"] = appAccessToken;
        parameters["method"] = "DELETE";
        var result = fb.Delete("/" + facebookRequestId + "_" + fbuserid, parameters);
    }

选项#4

public static void deleteFbRequest(string facebookRequestId, string appAccessToken, string fbuserid)
    {
        string url = "";
        url = "https://graph.facebook.com/" + facebookRequestId + "_" + fbuserid + "?access_token=" + appAccessToken + "&method=DELETE";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Proxy = null;
    }

1 个答案:

答案 0 :(得分:1)

好吧,它总是导致错误的小事。在为我们的大脑绞尽脑汁之后,问题是我用于方法参数的会话变量在它们的末尾有空格(额外的空格)。所以我使用了trim方法,它可以工作(见下文):

Session["FacebookUserID"].ToString().Trim()

吉兹!!