Как войти / аутентифицировать Facebook без браузера для настольного приложения в C # - PullRequest
7 голосов
/ 15 августа 2011

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

Многие люди говорят, что это невозможно, Facebook не разрешит политику конфиденциальности.Но такие приложения, как твит-колода или nimbuzz, делают это.Поэтому я думаю, что это возможно.

Я хочу использовать последнюю версию C # SDK от Facebook.

Ответы [ 2 ]

10 голосов
/ 15 августа 2011

Это невозможно.См. Эту ссылку: https://developers.facebook.com/docs/authentication/

Цитировать по этой ссылке:

Настольные приложения

Наша реализация OAuth 2.0 не включает явную поддержку настольных приложений.Однако, если ваше настольное приложение может встраивать веб-браузер (большинство настольных сред, таких как .NET, AIR и Cocoa поддерживают встраивание браузеров), вы можете использовать поток на стороне клиента с одной модификацией: конкретным redirect_uri.Вместо того, чтобы требовать от настольных приложений размещения веб-сервера и заполнения URL-адреса сайта в приложении для разработчиков, мы предоставляем конкретный URL-адрес, который можно использовать с настольными приложениями: https://www.facebook.com/connect/login_success.html.

Причина в том, что это не такВозможно, что Facebook использует протокол OAuth.Более подробную информацию о протоколе OAuth можно найти по адресу: http://tools.ietf.org/html/rfc5849

Основополагающим мотивом OAuth является то, что ресурсу, который требует авторизации, не нужно знать учетные данные / идентификационные данные пользователей.

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

2 голосов
/ 24 октября 2011

Оба ваших примера на самом деле используют браузеры. Tweetdeck - это AIR, а Nimbuzz - это .NET, оба из которых имеют встроенные браузеры, которые находятся за сценой. Существует один способ аутентификации без браузера , но это неприятно.

...