2017-03-01 45 views
2

我想升级我的Facebook GraphAPI版本。我正在使用koala宝石,这只发生在从api v2.3升级到更高版本时。Facebook图形API从2.3升级到2.4后返回不完整的对象

随着V2.3我提出以下要求,并得到如下回应:

@graph = Koala::Facebook::API.new(fb_resp["access_token"]) 
fb_user = @graph.get_object("me") 
# v2.3 response 
{ 
"id"=>"10974014220671", 
"email"=>"[email protected]", 
"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的changelog,有没有出现向“我”端点的任何变化。

任何想法在哪里看,或如果这可能是考拉问题?我正在使用gem "koala", "~> 2.4"

回答

3

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

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

所以你的情况,你必须

@graph.get_object("me", { fields: [:id, :email, :first_name, :gender, :last_name, :link, :locale, :name, :timezone, :updated_time, :verified]}) 
+0

更换@graph.get_object("me")这样一个简单的例子就是意味着,如果你曾经是能够做到对API查询像这样:'的https://graph.facebook.com/v2.3/m_mid.SOME_ID',那么你现在需要添加你想要返回的字段,比如'https://graph.facebook.com/v2.4/m_mid.SOME_ID?fields=附件 '让'attachments'字段回到您的回复中。 –