2011-08-15 7 views
7

Webブラウザコントロールを使用してデスクトップアプリケーション用のFacebookを認証できます。しかし、私はブラウザなしでログインしたい。電子メールとパスワードはWindowsのフォームから与えられます。私は多くを検索しましたが、これについては何も見つかりませんでした。C#でデスクトップアプリケーション用ブラウザなしでFacebookにログイン/認証する方法

多くの人々は、それは可能ではないと言って、Facebookはプライバシーポリシーを許可しません。しかし、tweet deckやnimbuzzのようなアプリケーションがそうしています。だから私はそれが可能だと思います。

私はFacebookの最新のC#sdkを使いたいです。

答えて

10

これはできません。そのリンクから引用すると https://developers.facebook.com/docs/authentication/

:このリンクを参照してください

デスクトップアプリ

当社のOAuth 2.0の実装は、明示的なデスクトップアプリケーションのサポートが含まれていません。ただし、デスクトップアプリケーションにWebブラウザ(.NET、AIR、Cocoaなどのほとんどのデスクトップフレームワークでは埋め込みブラウザがサポートされています)を組み込むことができる場合は、特定のredirect_uriという変更を加えてクライアント側のフローを使用できます。デベロッパーアプリケーションでWebサーバーをホストし、サイトURLを入力するようにデスクトップアプリケーションを要求するのではなく、デスクトップアプリケーションで使用できる特定のURL(https://www.facebook.com/connect/login_success.html)を提供します。

これができない理由は、FacebookがOAuthプロトコルを使用しているからです。 OAuthプロトコルの詳細については、次のURLを参照してください。 http://tools.ietf.org/html/rfc5849

OAuthの背後にある基本的な動機は、承認が必要なリソースがユーザーの資格情報/身元を知る必要がないことです。

あなたが提案している(クライアントのユーザ名/パスワードを取っている)のは、OAuthプロトコルの基本的な教義に反するものであり、少なくとも法的にはこれをFacebookで達成することはできません。

+4

返信いただきありがとうございます。とった。しかし、私はまだどのようにソフトウェアのログインユーザーをチャットするのか不思議です。インタフェースにブラウザを表示しません。 – AtanuCSE

+0

説明が間違っています。 OAuthはブラウザを必要とせず、httpだけです。 –

2

どちらの例も実際にはブラウザを使用しています。 TweetdeckAIRであり、Nimbuzz.NETであり、どちらもブラウザの裏側に組み込まれています。 one way to authenticate without a browserがありますが、それは厄介です。

関連する問題