2010-05-03 3 views
9

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

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

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

Благодаря

ответ

0

Согласно этой документации на «Desktop Application Authentication» Я не верю, что ваш желаемый результат можно:

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

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

+0

Microsoft имеет процентную долю в Facebook. Другая главная консоль (предположительно) имеет специальный sdk тоже, но я не видел ее. –

+0

@ Крис, я подозреваю, что потенциальный выигрыш для Facebook больше связан с ним, чем у Microsoft [1,6% акций] (http://en.wikipedia.org/wiki/Facebook#History) – Nicole

0

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

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

0

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

Что вы делаете, это подражать Facebook.

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

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

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

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

0

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

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

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

3

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

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

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

Это то, что я рекомендую тоже: У каждого экземпляра вашего устройства есть своего рода серийный номер; попросите пользователя войти на ваш сайт и связать этот логин с серийным номером устройства, которое у них есть, а затем подключить устройство к своему собственному веб-сайту и предоставить ему необходимую информацию аутентификации для доступа к API Facebook. – Igy

+0

. Я использовал этот способ, пока я программировал клиент facebook Smart TV. – siniradam