2

我正在尝试升级我的 Facebook GraphAPI 版本。我正在使用koala gem,这只发生在从 api v2.3 升级到更高版本时。

使用 v2.3,我提出以下请求并得到以下响应:

@graph = Koala::Facebook::API.new(fb_resp["access_token"])
fb_user = @graph.get_object("me")
# v2.3 response
{
"id"=>"10974014220671",
"email"=>"pam_lipnhdj_west@tfbnw.net",
"first_name"=>"Pam",
"gender"=>"female",
"last_name"=>"West",
"link"=>"https://www.facebook.com/app_scoped_user_id/109740146220671/",
"locale"=>"en_US",
"name"=>"Pam West",
"timezone"=>0,
"updated_time"=>"2017-03-01T14:53:49+0000",
"verified"=>false
}

#v2.4 response
{"name"=>"Pam West", "id"=>"10974014220671"}

我查看了 Facebook更改日志,“我”端点似乎没有任何更改。

有什么想法可以去哪里看,或者这可能是考拉的问题吗?我在用着gem "koala", "~> 2.4"

4

1 回答 1

3

从 v2.4 开始,您必须在请求中包含您要查找的字段。

过去,来自 Graph API 调用的响应会返回一组默认字段。为了减少有效负载大小并改善移动网络的延迟,我们减少了大多数 Graph API 调用返回的默认字段的数量。在 v2.4 中,您需要以声明方式列出呼叫的响应字段。

所以在你的情况下,你必须替换@graph.get_object("me")

@graph.get_object("me", { fields: [:id, :email, :first_name, :gender, :last_name, :link, :locale, :name, :timezone, :updated_time, :verified]})
于 2017-03-01T16:01:35.583 回答