我试图通过以下代码通过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]
返回likes
,photos
等数组的功能正常。
但last_name
,name
,first_name
等字符串会给我同样的错误。
我该怎么做才能解决这个问题?我还能输入其他东西,而不仅仅是birthday
答案 0 :(得分:5)
虽然记录不完整,但我还是阅读了宝石的代码。
Here它解释了如何做你想做的事。
你可以这样做:
Koala::Facebook::API.new(ACCESS_TOKEN).get_object(:me, { fields: [:birthday]})
这将返回生日和用户的ID。
答案 1 :(得分:1)
birthday
不是像friends
这样的端点,它只是用户表中的一个字段。 name
,first_name
和last_name
相同:
/me?fields=name,birthday,first_name,last_name
我对Ruby和Koala没有任何线索,但我假设您可以将fields参数添加为对象 - 这就是文档中的样子:
@graph.get_object("me", {}, api_version: "v2.0")
答案 2 :(得分:1)
我认为应该这样做!
rest = Koala::Facebook::API.new(access_token)
rest.get_object("me?fields=birthday")