Facebook я должен держать список друзей пользователя в моей собственной базе данных? - PullRequest
2 голосов
/ 03 апреля 2012

Я разрабатываю приложение (Flash / AS3), которое подключается к Facebook. После того, как пользователь входит в систему, мне нужно получить его список друзей (только идентификаторы), проверить, является ли кто-либо из них пользователем моего приложения (через реестр в базе данных), обновить список, добавив флаг каждому пользователю, который также пользователь приложения, а затем делать вещи с обновленным списком. Мой вопрос:

  • Должен ли я запросить список друзей, выполнить проверку и получить данные во Flash при запуске приложения? Я должен был бы ждать ответа от Facebook плюс время, чтобы выполнить сценарий (php); У меня будет только одна таблица с информацией о пользователях приложения;

или

  • если я оставлю всех друзей пользователя в своей собственной базе данных и получу задание cron, автоматически обновляющее (возможно, один раз в день) мою базу данных, то есть запрашивая список друзей каждого пользователя моего приложения, выполните проверку, удалите дубликаты и т. д.? В этом случае у меня будет таблица с пользователями приложения, таблица со списком друзей всех моих пользователей (которые могут быть, конечно, тысячами) и таблица user_friends для связи обеих предыдущих таблиц;

примечания: - Я использую PHP / cURL для отправки запросов в Graph API - База данных MySQl - Я, вероятно, также буду проверять наличие друзей в Твиттере и G + для каждого пользователя (так что сценарий может занять еще больше времени, хотя я мог бы проходить через каждую сеть отдельными шагами)

Как вы думаете, что является лучшим подходом? Я не против иметь период загрузки в приложении. К этому моменту у меня уже есть первый подход, почти завершенный, но коллега предложил второй, чтобы пользователю приложения не пришлось ждать ответа от сценария Facebook / Twitter / G + /. Но ... разве это не пустая трата ресурсов? Я имею в виду, что у Facebook и т. Д. Уже есть связи с пользователями / друзьями ... получу ли я что-нибудь, скопировав это в моей собственной БД и имея задания cron, выполняющие обновления, скрытые от пользователей приложения?

Надеюсь, я ясно дал понять! Спасибо!

1 Ответ

2 голосов
/ 04 апреля 2012

Однажды я столкнулся с похожей проблемой. Вы не сможете регулярно обновлять свою базу данных, потому что обычно вам нужен активный пользователь (= токен доступа), чтобы получить список друзей этого пользователя. Раньше вы могли запрашивать разрешение «offline_access», но это разрешение устарело: https://developers.facebook.com/roadmap/offline-access-removal/

Я решил записать все идентификаторы друзей в текстовый файл (идентификатор пользователя в виде имени файла: 123456789.txt) на моем сервере во время первого запуска моего приложения (показывая счетчик и текст с надписью «загрузка друзей ...»). «). Всякий раз, когда приложение запускалось впоследствии, я извлекал идентификаторы из этого файла.

Вы можете запустить обновление этого файла, проверив дату его создания. Если он «слишком старый», удалите и воссоздайте его после прочтения всех идентификаторов друзей. Таким образом, файловый кеш будет создан в фоновом режиме и не будет замечен пользователем.

...