Facebook Open Graph без браузера - PullRequest
9 голосов
/ 03 мая 2010

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

Эта промежуточная программа использует Java ME для запуска программ (таких как это простое приложение для Facebook) и может подключаться к Интернету, однако у нее нет настоящего веб-браузера. Без браузера он может подключиться к любому URL-адресу для получения ответа JSON, однако я не уверен, как добиться аутентификации без реального браузера.

При таких обстоятельствах возможна ли аутентификация в Facebook? Если вы так думаете, какой подход вы бы предложили?

Спасибо

Ответы [ 5 ]

3 голосов
/ 23 августа 2011

Facebook предоставляет доверенным партнерам частный API авторизации для получения токена OAuth 2 из имени пользователя / пароля.

Более сложным подходом было бы сделать что-то похожее на то, как Netflix регистрирует устройство:

  1. устройство вызывает сервер для получения кода
  2. устройство отображает код на экране и предлагает пользователю перейти на URL на сервере и ввести код
  3. сервер перенаправляет пользователя на Facebook и получает токен OAuth, пользователю приказано вернуться на устройство
  4. устройство вызывает сервер с кодом и получает токен OAuth
  5. устройство теперь может совершать звонки напрямую от имени пользователя
0 голосов
/ 03 августа 2011

В прошлом я использовал инструмент под названием screen-scraper (полное раскрытие: я работал там), чтобы автоматизировать вход в Facebook. По сути, он имитирует сеанс браузера; он позволяет вам установить переменные сеанса (то есть имя пользователя, пароль), которые затем будут отправлены на Facebook, как если бы пользователь отправил их в браузере.

Возможно, вы не сможете использовать screen-scraper в вашей среде приставки (хотя она основана на Java, поэтому возможно, что она будет работать). Даже если это не так, вы можете реализовать аналогичную стратегию в java, сделав HTTP-вызовы, которые браузер сделает для загрузки страницы входа и отправки учетных данных пользователя. Для обеспечения безопасности информации пользователя убедитесь, что используемая вами клиентская библиотека HTTP поддерживает HTTPS.

Инструменты прокси и расширения, такие как Charles , Fiddler2 , Firebug, инструменты разработчика Chrome и т. Д., Помогают точно определить, что браузер отправляет на сервер в запросах.

0 голосов
/ 08 июля 2010

Это не ответ, но я пытаюсь сделать то же самое. Посмотрите блог этого парня, который использует другой сервер для прокси-запросов: блог cory wiles

Если вы выясните это, пожалуйста, опубликуйте подробный ответ здесь, чтобы я мог сделать это ..:)

0 голосов
/ 21 марта 2011

Я думаю, что это возможно, хотя это довольно сложно и подвержено внезапным изменениям интерфейса Facebook. Это может нарушить соглашение между вами и Facebook.

То, что вы делаете, это эмулирует Facebook.

Один путь, который вы должны настроить приложение Facebook. Как только вы получили авторизацию от пользователя, вы можете сделать это с помощью Graph API.

Вам необходимо войти в систему и авторизоваться в Facebook. В запросе и ответе http / https есть несколько инструментов захвата. Проанализируйте их, как заголовок, так и тело.

Как только вы узнаете механизм авторизации, вы можете заменить его своим. Все остальное в Graph API.

Другой путь - эмулировать вход в систему Facebook, процесс отправки сообщений и уведомлений. Требуется захват и анализ.

0 голосов
/ 07 мая 2010

Согласно этой документации на " Аутентификация настольного приложения ", я не верю, что желаемый результат возможен:

Реализация OAuth от Facebook не включает явную поддержку настольных приложений. Однако, если ваше настольное приложение может встраивать веб-браузер, вы можете легко добавить поддержку Facebook в ваше приложение, используя тот же поток OAuth User-Agent, который используется клиентами JavaScript.

Тем не менее, некоторые поставщики могут сделать это, поскольку приложение Microsoft Xbox 360 для Facebook делает именно то, что вы предлагаете. Мне было бы интересно узнать, нашел ли кто-нибудь API для этого, чего не хочет Facebook в своей наиболее очевидной документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...