How to re-authenticate NATIVE DESKTOP Facebook app


I'm in the progress of reading all documentation of Facebook related to programming a Native Desktop application for Facebook. I explicitly state Native Desktop app. It will be using Client Side authentication WITHOUT the JAVA SDK.

As far as I have read, I know that access_tokens do expire. I've also read that you can re-authenticate. But........... Facebook has very limited documentation about how to do that with a desktop application running on Windows/Mac OSX or Linux using Client Side Authentication without the JAVA SDK.

My question is...... Is this possible anyway for such a Facebook desktop app or do I have to ask the user every time the access_token expires, to authorize my application again?

<strong>Important note</strong>: Facebook does not support the offline_access permission function/API (what a solution could have been) anymore.


Found the solution.

Yes it is possible for a Native Desktop client to re-authenticate. The access_tokens (given by Facebook during app authentication by the user) forms the connection between the user, Facebook and my Desktop app. This access_token (a string of 111 tokens) is valid for 60 days. When it expires the user must authenticate again BUT does not have to mark all options again to specify the permissions my Native Desktop App may have.

It is then just a matter for the user to log onto facebook using the


again without any other action he or she have to do (just a login with the right URL with the right scope of permissions and thats it). The user of my Desktop app is then redirected to a URL that just shows the messages <b>Success</b>.

So you need a browser or you need to handle http get and post requests by code yourself.


  • Segmentation Faults when Running MEX Files in Parallel
  • How to set Eclipse CDT to use GCC-4 instead of GCC?
  • Using JNA to Get NSWindow from JComponent on mac
  • Vertical alignment of float:left div's
  • AWS S3 implementation for serving private files
  • Implementing HMAC-SHA256 for Keybase in Javascript
  • Objective C - Create a framework for my iphone apps?
  • segue from landscape only to portrait only
  • Which browser have this strange user agent? (IOS device)
  • Portable JRE on Linux - possible?
  • Sensibility of combined Maven/Ant+Ivy build management for dual platform Desktop/Android deployment?
  • Unexpected token ILLEGAL while running node.js mocha test
  • Authentication in Play! and RestEasy
  • MS Access - How to change the linked table path by amend the table
  • Install PHP intl extension on MacOS
  • How to run “Deployd” on port 80 instead of port 5000 in webserver.
  • Abort upload large uploads after reading headers
  • Ajax Loaded meta Tags
  • Xamarin Forms - UWP Fonts
  • What is Eclipse's Declaration View used for?
  • Apache 2.4 and php-fpm does not trigger apache http basic auth for php pages
  • Sony Xperia Z Tablet not found by adb
  • How to recover from a Spring Social ExpiredAuthorizationException
  • Window Size for Mac application
  • Javascript convert timezone issue
  • Arrow is showed instead of the material design version hamburger icon. Why doesn't syncState in
  • ActionScript 2 vs ActionScript 3 performance
  • Why is the timeout on a windows udp receive socket always 500ms longer than set by SO_RCVTIMEO?
  • How can I estimate amount of memory left with calling System.gc()?
  • Function pointer “assignment from incompatible pointer type” only when using vararg ellipsis
  • Apache 2.4 - remove | delete | uninstall
  • WOWZA + RTMP + HTML5 Playback?
  • Arrays break string types in Julia
  • How do you join a server to an Active Directory (domain)?
  • coudnt use logback because of log4j
  • Authorize attributes not working in MVC 4
  • Busy indicator not showing up in wpf window [duplicate]
  • Python/Django TangoWithDjango Models and Databases
  • Net Present Value in Excel for Grouped Recurring CF