Gem Koala Facebook API get_object请求

时间:2016-01-15 10:26:08

标签: ruby-on-rails facebook facebook-graph-api koala-gem

我试图通过以下代码通过Gem Koala Facebook API获取用户信息

@graph = Koala::Facebook::API.new(auth_hash.credentials.token) profile = @graph.get_object("me") user.update( url: auth_hash.extra.raw_info.id, email: auth_hash.extra.raw_info.email, friends: @graph.get_connections("me", "friends"), birthday: @graph.get_object("me", "birthday") )

friends: @graph.get_connections("me", "friends")效果很好,我会得到一个朋友列表。

但是birthday: @graph.get_object("me", "birthday")会给我type: OAuthException, code: 2500, message: Unknown path components: /birthday [HTTP 400]

返回likesphotos等数组的功能正常。

last_namenamefirst_name等字符串会给我同样的错误。

我该怎么做才能解决这个问题?我还能输入其他东西,而不仅仅是birthday

3 个答案:

答案 0 :(得分:5)

虽然记录不完整,但我还是阅读了宝石的代码。

Here它解释了如何做你想做的事。

你可以这样做:

Koala::Facebook::API.new(ACCESS_TOKEN).get_object(:me, { fields: [:birthday]})

这将返回生日和用户的ID。

答案 1 :(得分:1)

birthday不是像friends这样的端点,它只是用户表中的一个字段。 namefirst_namelast_name相同:

/me?fields=name,birthday,first_name,last_name

我对Ruby和Koala没有任何线索,但我假设您可以将fields参数添加为对象 - 这就是文档中的样子:

@graph.get_object("me", {}, api_version: "v2.0")

来源:https://github.com/arsduo/koala

答案 2 :(得分:1)

我认为应该这样做!

rest = Koala::Facebook::API.new(access_token)
rest.get_object("me?fields=birthday")