下午好, 我正在使用Facebook C#SDK的5.4.1版。我应该注意到我直接使用源代码而不是DLL(如果这有任何区别)。
因此,设置过滤器属性的事实很棒(谢谢开发团队:)。
我的问题是在初始请求期间(在我使用来验证来自Facebook的GET响应之前)
这是我最初的要求:
dynamic result = fb.Post(
string.Format("/{0}/subscriptions",
FacebookApplication.Current.AppId),
new Dictionary<string, object>
{
{"object", "user"},
{"fields", "friends"},
{
"callback_url",
"http://localhost:16917/subscription/verify"
},
{
"verify_token",
"77FB802F-1147-48F0-BB0F-E4E9BC1FBCFC"
}
});
我发现内部被抛出异常并且通过Fiddler我看到请求永远不会消失。例外是:
$exception {"(OAuthException) (#15) This method must be called with an app access_token."} System.Exception {Facebook.FacebookOAuthException}
我最初认为这可能与Facebook.FacebookClient的PrepareRequest方法有关:
if (httpMethod == HttpMethod.Get)
{
// for GET, all parameters goes as querystrings
input = null;
queryString.Append(FacebookUtils.ToJsonQueryString(parameters));
}
else
{
if (parameters.ContainsKey("access_token"))
{
queryString.AppendFormat("access_token={0}", parameters["access_token"]);
parameters.Remove("access_token");
}
}
但注释掉parameters.Remove("access_token");
行没有任何区别。
非常感谢任何帮助!
答案 0 :(得分:1)
您使用的是什么access_token?
您使用的是用户访问令牌还是App访问令牌?
如果您使用的是用户访问令牌,请查看http://developers.facebook.com/docs/authentication/#app-login有关如何获取App访问令牌的信息。
答案 1 :(得分:1)
您需要使用app access_token。
您可以使用以下构造函数轻松创建app access_token。
var fb = new FacebookClient("appid", "appsecret");
dynamic result = fb.Post( .... );