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