CakePHP и Facebook PHP SDK: правильный способ решения задач? - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь работать над веб-приложением, использующим PHP PHP SDK с CakePHP в качестве моей платформы.

Изначально я загружал кучу данных facebook в мои контроллеры, но заметил, чтоВызовы API Facebook занимают много времени.Так что я подумал об использовании Shell Shell Tasks для обработки данных facebook с помощью запланированных заданий cron.

Сначала общий вопрос: правильный ли это способ справиться с такой ситуацией?Например, использование задач оболочки для использования в заданиях cron.

Во-вторых, в настоящее время моя логика подключения к FB, извлечения данных, сохранения в db - все это в действиях контроллера.Как я могу получить доступ к этим действиям из оболочки? Задача?

Наконец, Facebook требует, чтобы пользователь вошел в систему, чтобы получить данные.Если я буду использовать задания cron, как пользователь войдет в систему?

Спасибо!

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Используйте распределенный сервер заданий, такой как GearMan или ZeroMQ, который очень хорошо работает с PHP.Затем, собрав токены доступа с помощью offline_permission, зарегистрируйте эти задачи как «задания» в GearMan или ZeroMQ и обработайте их с помощью рабочих сценариев.Его легко начать с GearMan.

  1. http://www.masnun.me/2011/09/30/gear-up-your-php-apps-with-gearman.html

  2. http://www.masnun.me/2011/09/30/installing-and-getting-started-with-gearman.html

Надеюсь, это поможет.

1 голос
/ 17 октября 2011

Существует несколько способов решения этой проблемы.

Самым простым, вероятно, будет асинхронный AJAX-запрос на получение данных, когда пользователь просматривает ваш сайт (для этого, конечно, требуется, чтобы пользователь мог просматривать ваш сайт, фактически не "покидая" страницу).

Если вы захотите выполнить отложенные задачи с помощью cron (или beanstalkd, или отложенной работы, попробуйте их в Google), вам, вероятно, понадобятся дополнительные привилегии в вашей интеграции с Facebook, в частности, функция «автономного доступа». "Это разрешение делает маркер доступа, возвращенный нашей конечной точкой OAuth, долговечным." После этого вы сможете выполнять вызовы OAuth из оболочки торта для извлечения данных.

Надеюсь, это поможет!

...