Я работаю над API, который будет собирать данные с нескольких веб-сайтов, включая Facebook. В API есть механизм, который собирает данные через регулярные промежутки времени, а затем клиентское приложение опрашивает API, чтобы централизованно получать данные со всех веб-сайтов.
Проблема в том, что у API нет способа аутентификации при регулярных закулисных сборах, поскольку Facebook настаивает на том, чтобы пользователь нажимал на диалог OAuth. С учетом короткого рассказа о том, что нет способа войти в API Graph без вывода сообщений, это почти означает, что разработка такого API невозможна (за исключением сбора только открытых данных).
Тем не менее, я не так просто удовлетворен ответами "это невозможно" и моими клиентами - тем более. Доступ к личной информации на деманде определенно возможен, поскольку приложения Facebook делают это. Например, официальное приложение Twitter публикуется на моей стене всякий раз, когда я чирикаю. Я полагаю, что приложениям нужно разрешение только один раз, а затем они могут получить доступ к профилю пользователя, сколько захотят.
Таким образом, это заставляет меня думать, что я должен сделать комбинацию клиента Graph API и приложения, которые общаются друг с другом, и всякий раз, когда API нужно собрать - он просит приложение получить данные и извлечь их в API. Или, может быть, это модель push (приложение отправляет данные всякий раз, когда она генерируется), а не pull (API запрашивает данные через регулярные интервалы).
Я на правильном пути? Является ли какой-либо из них правильным подходом к проектированию?
Я провел некоторый поиск, но очень сложно найти какую-либо полезную дискуссию по этой теме, поскольку по любым ключевым словам, которые я пробую, я нахожу только обсуждения типа «Могу ли я войти без участия пользователя?»