代码之家  ›  专栏  ›  技术社区  ›  Matthew Flynn

facebook graph sdk 2.5仅返回id和名称

  •  1
  • Matthew Flynn  · 技术社区  · 10 年前

    我见过其他堆叠的问题,但他们的解决方案似乎对我没有任何帮助。

    当我有一个外部访问令牌时,我试图获取配置文件信息,该令牌是使用oauth登录返回的

    Microsoft.Owin.Security.Facebook
    

    我有返回的访问令牌,现在想请求获取一些用户配置文件数据。

    在邮递员中,我尝试了以下GET

    https://graph.facebook.com/v2.5/{user-id}?fields=about,name,email&access_token={token}
    

    在那里我通过调用

    https://graph.facebook.com/v2.5/me?access_token={token}
    

    (我认为这是不必要的步骤)。

    我还尝试了以下方法

    https://graph.facebook.com/v2.5/me?fields=about,name,email&access_token={token}
    

    在每一个实例中,我只返回id和name字段。然而,我注意到如果我做了以下事情;

    https://graph.facebook.com/v2.5/me?fields=email&access_token={token}
    

    只返回id(我假设我没有特别询问名称)。

    你知道为什么我没有被退回数据吗?

    已更新

    如果我调用以下端点;

    https://graph.facebook.com/v2.5/{user-id}/permissions?access_token={token}
    

    我返回以下数据;

    {
        "data": [
            {
                "permission": "public_profile",
                "status": "granted"
            }
        ]
    }
    

    所以我假设我需要请求应用程序的权限?

    1 回复  |  直到 10 年前
        1
  •  0
  •   Matthew Flynn    10 年前

    好的,ASP。NET权限请求在facebook开发者页面上不是很清楚。问题是,信息请求设置在

    FacebookAuthenticationOptions 
    

    在应用程序启动期间设置。此时通过添加到作用域来请求附加权限;

    var options = new FacebookAuthenticationOptions
    {
        AppId = "Your App ID",
        AppSecret = "Your App Secret",
    };
    options.Scope.Add("user_friends");
    options.Scope.Add("email");
    

    此外,请注意,在请求期间,默认情况下不发送字段,必须请求字段。

    可在此处找到可用权限的链接;

    https://developers.facebook.com/docs/facebook-login/permissions