Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to login / authenticate facebook without browser for desktop application in C#

I can authenticate Facebook for desktop application using web browser control. But I want to log in without the browser. Email and password will be given through windows form.I've searched a lot, but found nothing on this.

Many people saying that it's not possible, facebook won't allow for privacy policy. But applications like tweet deck or nimbuzz are doing that. So I think it's possible.

I want to use Facebook's Latest C# sdk.

like image 225
AtanuCSE Avatar asked Aug 15 '11 06:08

AtanuCSE


People also ask

Does Facebook login use OAuth?

OAuth is generally used by websites or applications like Facebook, Google, Twitter and Microsoft, all of which have a humongous user database.

Does OAuth2 support Facebook?

It's the only authentication protocol supported by the major vendors. Google recommends OAuth2 for all of its APIs, and Facebook's Graph API only supports OAuth2. The best way to understand OAuth2 is to look at what came before it and why we needed something different. It all started with Basic Auth.


2 Answers

It is not possible. See this link: https://developers.facebook.com/docs/authentication/

To quote from that link:

Desktop Apps

Our OAuth 2.0 implementation does not include explicit desktop app support. However, if your desktop app can embed a web browser (most desktop frameworks such as .NET, AIR and Cocoa support embedding browsers), you can use the client-side flow with one modification: a specific redirect_uri. Rather than requiring desktop apps to host a web server and populate the Site URL in the Developer App, we provide a specific URL you can use with desktop apps: https://www.facebook.com/connect/login_success.html.

The reason that this is not possible is that facebook uses the OAuth protocol. More details on the OAuth protocol can be found at: https://www.rfc-editor.org/rfc/rfc5849

The fundamental motivation behind OAuth is so that the resource that needs authorization does not need to know the credentials/identity of users.

What you are proposing (taking in the clients username/password) goes against the fundamental tenets of the OAuth protocol and you cannot (at least legally) achieve this with facebook.

like image 60
Varun Chatterji Avatar answered Oct 13 '22 01:10

Varun Chatterji


Both of your examples actually do use browsers. Tweetdeck is AIR, and Nimbuzz is .NET, both of which have browsers built-in that are behind the scenes. There is one way to authenticate without a browser, but it's nasty.

like image 39
benthehutt Avatar answered Oct 13 '22 00:10

benthehutt