3

我正在使用 Facebook SDK,并且正在尝试使用 C# 来获取用户订阅的组。代码如下

JsonObject Groups = (JsonObject)client.Get("me/groups");

执行此代码后,我得到一个空对象。这是我想念的东西吗?

喜欢 ( JsonObject Groups = (JsonObject)client.Get("me/likes");) 和朋友 ( JsonObject Groups = (JsonObject)client.Get("me/friends");) 的销售代码工作正常。

4

2 回答 2

3

您需要提示用户提供 user_groups 扩展权限。

于 2011-08-25T14:55:21.180 回答
0

由于我遇到了同样的问题并且在任何地方都找不到帮助,我想我会按照@DustyRoberts 的要求解释如何解决这个问题。

如果您在请求时得到一个空对象,me/groups或者{user-id}/groups是因为您缺少user_managed_groups权限(user_groups在 Graph API 版本 2.3 之前)。

您可以通过scope在用户登录时添加参数来做到这一点。这是一个逗号分隔的权限列表。您可以在此处查看完整的权限列表(v2.4)

    public static Uri GetLoginUrl(bool rerequestPermissions)
    {
        var client = new FacebookClient();
        dynamic para = new ExpandoObject();
        para.client_id = Settings.AppId;
        para.redirect_uri = Settings.LoginRedirUrl;
        para.response_type = Settings.ResponseType;
        para.scope = Settings.Scope; // Includes user_managed_groups

        // true if you've detected that one or more permissions have been denied
        // or revoked. It'll promt the user to grant the permissions again as when they
        // first used your app.
        if (rerequestPermissions)
            para.auth_type = "rerequest";

        return client.GetLoginUrl(para);
    }

有关在此处检查权限的更多信息(v2.4)

我希望这对某人有所帮助,因为这正是我使其工作所需的信息。

于 2015-09-09T21:05:55.387 回答