首页 > 解决方案 > Facebook graph api无法获取用户公开资料

问题描述

我已经在我的应用程序中实现了社交身份验证,并且成功获得了访问令牌。但是当我使用该访问令牌来获取用户的公开资料时,我只得到用户的 ID 和用户名。我无法获取用户的其他属性,例如用户的个人资料图片。

当我尝试这个时:

Json = await httpClient.GetStringAsync($"https://graph.facebook.com/v5.0/{userWithOnlyId.Id}?access_token={accessToken}");

我只得到用户的 id 和 name。

当我按照此 facebook 文档中的说明执行此操作时:

await httpClient.GetStringAsync(
            $"https://graph.facebook.com/me?fields=profile_pic&access_token={accessToken}");

我收到 403 禁止错误。

我做错了什么吗?我已经尝试了在 stackoverflow 上找到的几件事,但到目前为止我还没有解决方案。

标签: c#facebook-graph-apifacebook-authentication

解决方案


有一个例子(部分:检索个人资料):

https://graph.facebook.com/<PSID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>

看起来您需要提供 PSID

ASID(App-scoped ID) - 它是每个应用程序唯一的用户 ID。

这意味着该用户对于每个应用程序将具有不同的 ASID。我认为您只有一个应用程序。

要从 App-scoped ID 获取 Page-scoped ID,请将 POST 请求发送到 /pages_id_mapping 根节点 在此处输入图像描述


推荐阅读