开场白:我确实不了解 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 进行身份验证的 App ID 的权限。
注意:只有在用户之前已经对您的应用进行了身份验证(具有最基本的权限级别)时,才会在响应中返回用户;但这应该不是问题。