Running Facebook authentication on localhost 

It has sure taken its sweet time, but I have finally started working with an ASP.NET MVC3 project that will use the Facebook API to create and login users. It’s really easy, and quite cool, and I curse myself for not having a look at this earlier.

However, after creating a Facebook app and pasting in the short code snippet that lets you log in with your Facebook account, I noticed that I was not allowed to do so from my localhost:

   API Error Code: 191
   API Error Description: The specified URL is not owned by the application
   Error Message: redirect_uri is not owned by the application.

Sure, you must enter an app URL when you register your app, but I really expected it to be possible to use the API while developing locally…

…and it turned out that it is. This is how you do it:

  • Create a web site, if you do not have one already
  • Create the FB app that will be used by the web site
  • Give the FB app an URL that you can manage, e.g. http://myapp.mydomain.com/
  • Make sure that the URL exists – it can be an empty folder, but it must exist and be public
  • If you upload some of the FB code snippets to this URL, they should work.

To enable the FB features on localhost, you must create a web site with the same binding as the URL above. I have only tried this with IIS 7 / Windows 7 – please let me know if you make it work on Apache, in OS X etc.

That’s it. Note, however, that some FB features will not work if the live site misses certain pages. For instance, if you use the Like button to like a local page, it will not work if the URL does not exist at the live site.