我有以下图谱API调用:me/accounts?fields=access_token,name,id,perms
我用来从用户那里获取页面令牌。
现在我想通过perms="CREATE_CONTENT"
对此进行过滤。 如何过滤此图谱API调用?
我正在使用C# Facebook.net SDK。目前我使用此代码:
client.Post("me/accounts", new { fields = "access_token,name,id,perms" });
答案 0 :(得分:0)
你不能在API中直接过滤它,但是从c#中很容易做到 - 你从Facebook.JSONObject响应中得到ICollection,所以你可以使用linq来过滤它 - {{ 3}}对如何实现这一点有很好的解释。
答案 1 :(得分:0)
开场警告:我不知道C#,但我经常使用其他编程语言的Facebook工作。
Facebook有许多"Publish Permissions"作为其扩展权限的一部分。我假设您已经从用户那里请求了一项或多项这些权限。 (我没有看到create_content
列出的内容;这是我提及它的唯一原因。)例如,我们请求您create_event
的许可用户。
尝试将Facebook用户ID累积到列表中,然后使用Facebook SDK客户端发出FQL查询以获得您感兴趣的权限:
List<int> facebookUserIds = new List<int>(1, 2, 3);
var query = string.Format("SELECT uid, create_event FROM permissions WHERE uid IN ({})", string.Join(",", facebookUserIds));
dynamic parameters = new ExpandoObject();
parameters.q = query;
dynamic results = client.Get("/fql", parameters);
您收到的回复将包含这样的属性(此处为JSON格式):
{
"data": [
{
"uid": 1,
"create_event": 1
},
{
"uid": 2,
"create_event": 0
}
{
"uid": 3,
"create_event": 0
}
]
}
当然,0
表示权限被拒绝,而1
表示您为使用Facebook API进行身份验证所使用的应用ID而授予的权限。
注意:如果用户之前已对您的应用进行了身份验证(最基本级别的权限),则只会在回复中返回用户;但这不应成为一个问题。