Получить возраст друзей на Facebook с Руби через rFacebook - PullRequest
0 голосов
/ 05 апреля 2011

Я создаю приложение для Facebook и мне нужен доступ к возрасту людей - только друзья пользователя, а не широкая публика.

Я использую rFacebook версии 0.6.2, настройка по линии this .

Мне нужно узнать возраст / день рождения всех моих друзей.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Согласно http://rfacebook.rubyforge.org/ rFacebook не поддерживается, он предложил Facebooker, но даже Facebooker не обновлялся в течение нескольких месяцев: https://github.com/mmangino/facebooker

Я предлагаю Коалу (и не только потому, что я 'я австралиец).Прочитайте по адресу: https://github.com/arsduo/koala Также есть подробности о настройке Koala на Rails: https://github.com/arsduo/koala/wiki/Koala-on-Rails

Я только что создал приложение FB, используя Koala и страницу пользовательских вкладок на прошлой неделе, и это было очень быстро.

Вам также необходимо прочитать: http://developers.facebook.com/docs/authentication/ (обратите внимание на упоминание областей и уровней разрешений).В соответствии с: http://developers.facebook.com/docs/authentication/permissions/ вы должны запросить «friends_birthday», когда запрашиваете объем.

Я не уверен, что есть простой способ получить дни рождения всех ваших друзей в партии.Возможно, вам придется пройтись по каждому другу и получить его информацию.

В качестве теста перейдите по адресу: http://developers.facebook.com/docs/reference/api/ и нажмите на ссылку друзей.Затем скопируйте удостоверение личности вашего первого друга.В URL замените «/ me / friends» идентификатором, который вы скопировали.Например: https://graph.facebook.com/me/friends?access_token=ABC123 становится https://graph.facebook.com/12345678?access_token=ABC123 Затем вы увидите данные этого друга, одно поле которого - день рождения.

#i have already asked for user permissions, and have my access token
#https://github.com/arsduo/koala/wiki/OAuth
graph = Koala::Facebook::GraphAPI.new(oauth_access_token)
friends = graph.get_connections("me", "friends")
friends.each do |f|
   friend = graph.get_object(f['id'])
   puts "#{f['name']} has a birthday on #{friend["birthday"]}"
end

Хотя, возможно, вы сможете использовать FQLсделать партию.

#FQL taken from http://stackoverflow.com/questions/5063431/easiest-way-to-get-birthday-info-of-all-friends-thorugh-graph-api 
fql = "select uid,name,birthday_date from user where uid in (select uid2 from friend where uid1=me())"
#https://github.com/arsduo/koala/wiki/REST-API
@rest = Koala::Facebook::GraphAndRestAPI.new(oauth_access_token)
birthdays = @rest.fql_query(fql)

Удачи!

1 голос
/ 05 апреля 2011

FQL - это, вероятно, способ пойти сюда, как упомянуто выше.

Пара замечаний:

  1. Не у всех ваших друзей будет доступен день рождения (либо потому, что они ограниченыэта информация, или потому что они не опубликовали ее).Если вам нужны данные только для ваших друзей с доступными днями рождения, вы можете добавить «и birthday_date» к предложению where.
  2. Этот запрос вернет не все данные, а только первые 100 или около того.Если вы хотите получить их все, вам нужно будет запрашивать их по одной странице за раз.Это можно сделать, добавив предложение «limit 0,50», чтобы запросить 50 строк, начиная с 0-го.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...