Facebook graph api无法获得用户的公开个人资料

时间:2019-11-24 10:30:46

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

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

当我尝试此操作时:

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

我只获得用户的ID和名称。

当我按照this facebook doc中的说明进行操作时:

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

我收到403禁止的错误。

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

1 个答案:

答案 0 :(得分:0)

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

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

您似乎需要提供一个PSID

ASID(应用程序范围的ID)-这是每个应用程序唯一的用户ID。

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

  

要从应用程序范围的ID中获取页面范围的ID,请将POST请求发送至   / pages_id_mapping根节点   enter image description here