Gem Koala Facebook API запрос get_object

Я пытаюсь получить информацию о пользователе через API Gem Koala Facebook с кодом ниже.

@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?


person Victor Yee    schedule 15.01.2016    source источник


Ответы (3)


Хотя это не очень хорошо документировано, я прочитал код драгоценного камня.

Здесь объясняется, как делать то, что вы хотите.

Вы можете сделать это следующим образом:

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

Это вернет день рождения и идентификатор пользователя.

person MatayoshiMariano    schedule 18.08.2016
comment
Спасибо. Документация Koala не очень любезна, когда дело доходит до примеров. - person Sebastialonso; 30.08.2016

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")

Источник: https://github.com/arsduo/koala

person luschn    schedule 15.01.2016
comment
Вы имеете в виду попробовать так - друзья: @graph.get_connections(me?, fields=birthday)? По какой-то причине он возвращает меня с идентификатором, днем ​​​​рождения, first_name, last_name и т. д. и т. д. - person Victor Yee; 15.01.2016
comment
Если я удалю '?' от меня?' это даст мне тип: OAuthException, код: 2500, сообщение: Неизвестные компоненты пути: /fields=dayday [HTTP 400] - person Victor Yee; 15.01.2016
comment
ну тогда используйте то решение, которое работает, а не то, которое не работает ;) - person luschn; 15.01.2016
comment
Я имел в виду, что если бы я должен был сделать только день рождения @graph.get_connections(me?, fields=birthday), это даст мне день рождения PLUS id, first_name и т. д. Я изменил его на @graph.get_connections(, me?fields=birthday) и он возвращает день рождения ПЛЮС идентификатор пользователя., лол - person Victor Yee; 15.01.2016
comment
хорошо, это странно. в общем, вам всегда нужно определять каждое поле, которое вы хотите вернуть, по умолчанию вы получаете только идентификатор и имя. - person luschn; 15.01.2016

Я думаю, это должно сделать это!

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