Facebook 图形 API 仅返回某些网站的名称和 ID

Posted

技术标签:

【中文标题】Facebook 图形 API 仅返回某些网站的名称和 ID【英文标题】:Facebook graph API returns only name and id for some websites 【发布时间】:2015-10-16 12:51:29 【问题描述】:

我开发了一个使用 Facebook 进行社交登录的 WordPress 插件。 我正在使用 Facebook 图形 API /me 来检索用户详细信息。我的问题是,对于某些网站,当安装 Facebook 登录插件时,我只能获取用户 ID 和名称。

Array
(
    [name] => John doe
    [id] => 398463877009801
)

但相同的代码也适用于某些网站。

Array
(
    [id] => 398463877009801
    [email] => something@gmail.com
    [first_name] => John
    [gender] => male
    [last_name] => Doe
    [link] => https://www.facebook.com/app_scoped_user_id/398463877009801/
    [locale] => en_US
    [name] => John Doe
    [timezone] => 5.45
    [updated_time] => 2015-05-03T11:24:16+0000
    [verified] => 1
)

对于仅获取名称和 ID 的网站,错误的可能性是什么?

【问题讨论】:

API v2.4 更改了默认返回的字段。去阅读更新日志。 【参考方案1】:

正如 CBroe 在上述评论中已经指出的那样,Facebook API(比 2.4 版更新)改变了响应和发送请求的方式。

必须在请求中指定要从 Graph API 返回的每个字段

例如,如果您希望返回字段 emailname,则必须将它们添加到请求中,如下所示:

/me?fields=email,name

【讨论】:

嗨 Razvan 非常感谢您的回复。但我已经尝试放置字段值,但我仍然没有得到我想要的。如果我放置字段属性或不放置任何字段属性,我总是会收到 id 和 name。这对我来说是如此奇怪的行为,因为相同的代码适用于大多数网站。谢谢 你使用的是官方的 php facebook sdk 吗?我们可以看到一些代码吗?您是否通过指定范围来请求正确的权限? 我不知道如何在这里发送文件的链接。我会尝试叙述我的代码 [code] $facebook = new Facebook($config); $user = $facebook->getUser(); if ($user) try // 知道您有一个经过身份验证的登录用户。 $user_profile = $facebook->api('/me'); 捕捉 (FacebookApiException $e) error_log($e); $用户=空; print_r($user_profile); [/code] 首先将您的 SDK 升级到此版本 NEW FACEBOOK SDK,因为在我看来您正在运行一个过时的版本并遵循这个不言自明的 EXAMPLE。注意 $permissions 数组。 谢谢!!!!伙计,我最后解决了这个问题,我使用 3rd 方插件来管理 Facebook API。下面是我的电话'graph.facebook.com/v2.3/…'

以上是关于Facebook 图形 API 仅返回某些网站的名称和 ID的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Messenger ID匹配API仅适用于管理员

Facebook 图形 API 不会返回朋友的工作历史

Facebook 图形 API 事件

FB.API Facebook Open Graph 为某些用户的用户点赞返回空数据

如何使用图形 api/FQL 从 facebook 获取过去/结束的公共事件?

使用图形 api 获取 facebook 事件源