C# 如何通过创建内容权限过滤Facebook页面?
我有以下图形API调用:C# 如何通过创建内容权限过滤Facebook页面?,c#,asp.net,facebook,api,facebook-graph-api,C#,Asp.net,Facebook,Api,Facebook Graph Api,我有以下图形API调用:me/accounts?fields=access\u token、name、id、perms,我使用它从用户那里获取页面标记 现在,我想通过perms=“CREATE\u CONTENT”对其进行过滤。如何筛选此图形API调用 我在用电话。目前我使用以下代码: client.Post(“me/accounts”,新的{fields=“access\u token,name,id,perms”})你不能在API中直接过滤这个,但是从c#可以很容易地做到这一点-你从Face
me/accounts?fields=access\u token、name、id、perms
,我使用它从用户那里获取页面标记
现在,我想通过perms=“CREATE\u CONTENT”
对其进行过滤。如何筛选此图形API调用
我在用电话。目前我使用以下代码:
client.Post(“me/accounts”,新的{fields=“access\u token,name,id,perms”})代码>你不能在API中直接过滤这个,但是从c#可以很容易地做到这一点-你从Facebook.JSONObject响应中得到一个ICollection,所以你可以使用linq来过滤它-对如何实现这一点有很好的解释。开头警告:我不知道c#,但我经常用其他编程语言和Facebook合作
Facebook拥有大量的权限作为其扩展权限的一部分。我假设您已经向您的用户请求了一个或多个这些权限。(我没有看到列出create_content
;这是我提到它的唯一原因。)比方说,您向用户请求了create_事件
权限
尝试将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);
当然,0
意味着权限被拒绝,1
意味着为您用来通过Facebook API进行身份验证的应用ID授予权限
注意:只有在用户之前验证过您的应用程序(最基本的权限级别)的情况下,才会在响应中返回用户;但这应该不是问题。如果这样做,您将无法看到页面访问令牌。
{
"data": [
{
"uid": 1,
"create_event": 1
},
{
"uid": 2,
"create_event": 0
}
{
"uid": 3,
"create_event": 0
}
]
}