【发布时间】:2013-03-05 22:26:10
【问题描述】:
我正在尝试使用 Facebook-SDK 6.1.4 版列出我所有朋友的生日 当我使用下面的代码时(即没有 FQL,它运行良好,但我无法获取生日,只有 name 和 id 值)。
var client = new FacebookClient(access_token);
dynamic me = client.Get(myusername);
client.IsSecureConnection = true;
friendListData = client.Get("/" + me.id + "/friends?fields=name,id");
JObject job = JObject.Parse(friendListData.ToString());
所以我尝试将代码与 FQL 一起使用,但它引发了异常。
var client = new FacebookClient(access_token);
client.IsSecureConnection = true;
dynamic me = client.Get(myusername);
//var id = me.id;
Facebook.JsonObject friendListData = new Facebook.JsonObject();
try
{
friendListData = (Facebook.JsonObject)client.Get("fql",
new
{
q = new
{
name = "SELECT name, birthday, email, uid FROM user WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me()) AND birthday_date != 'null' ORDER BY birthday_date"
}
});
}
catch (FacebookOAuthException facebookAuth)
{
//"(OAuthException - #102) A user access token is required to request this resource."
}
我做错了什么?
【问题讨论】:
-
是您的访问令牌是用户访问令牌吗? (顺便说一句,您也可以通过“普通”API 查询获取生日,不一定是 FQL。)
-
我使用下面的 URL 来生成 access_token。它是一个 APP 访问令牌。 graph.facebook.com/oauth/access_token? client_id=YOUR_APP_ID &client_secret=YOUR_APP_SECRET &grant_type=client_credentials
-
CBroe,我认为您为我指明了正确的方向。我需要使用的令牌应该是用户访问令牌,而不是应用访问令牌。
标签: facebook c#-4.0 facebook-c#-sdk facebook-fql