Как имитировать тихий вход в Facebook Graph API?

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

Проблема в том, что API не имеет возможности аутентифицироваться при регулярных сборах за кадром, поскольку Facebook настаивает на том, чтобы пользователь нажимал на диалог OAuth. Вкратце говоря, что нет возможности войти в систему для графического API, это почти означает, что разработка такого API невозможна (за исключением сбора только общедоступных данных).

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

Я немного искал, но очень сложно найти какое-либо полезное обсуждение по этой теме, так как какие бы ключевые слова я ни пробовал, я нахожу только обсуждения типа «Могу ли я войти в систему в автоматическом режиме? Нет».


person Vroomfundel    schedule 16.05.2011    source источник


Ответы (1)


Вы захотите изучить разрешение offline_access. Это позволяет вам получить доступ к данным пользователя, когда у него нет активного сеанса или он находится в автономном режиме. Это настолько близко к "тихому входу", насколько это возможно.

person Jimmy Sawczuk    schedule 16.05.2011
comment
Да, это то, что мне нужно использовать, если этот общий дизайн окажется осуществимым, спасибо. Я еще не дошел до этого момента (и я тоже не успел проголосовать за комментарии) - person Vroomfundel; 19.05.2011
comment
Я согласен. Если вы выполните один процесс входа и сохраните токен доступа, он будет оставаться действительным, пока пользователь не удалит ваше приложение, не истечет срок действия токена или пользователь не выйдет из системы. - person Kelly Elton; 27.10.2011