我已经尝试了几乎所有我能想到的变化,但似乎没有任何效果。我试图使用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;
}
答案 0 :(得分:1)
好吧,它总是导致错误的小事。在为我们的大脑绞尽脑汁之后,问题是我用于方法参数的会话变量在它们的末尾有空格(额外的空格)。所以我使用了trim方法,它可以工作(见下文):
Session["FacebookUserID"].ToString().Trim()
吉兹!!