1. How do I specify API version of Facebook?
You can specify in the configuration.
via facebook4j.properties
Please add the following to the facebook4j.properties of your application.
restBaseURL=https://graph.facebook.com/v2.0/
via ConfigurationBuilder
Please set the API version to ConfigurationBuilder .
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
:
.setRestBaseURL("https://graph.facebook.com/v2.0/"); // <- set v2.0
FacebookFactory ff = new FacebookFactory(cb.build());
Facebook facebook = ff.getInstance();
via System Properties
Note that you need “facebook4j.” prefix.
$ java -Dfacebook4j.debug=true
:
-Dfacebook4j.restBaseURL=https://graph.facebook.com/v2.0/
:
2. How to extend expiration of my access token?
See Facebook’s Documentation: Expiration and Extension of Access Tokens
You can extend expiration of your short-lived access token as below:
AccessToken extendedToken = facebook.extendTokenExpiration(shortLivedToken);
3. How to Re-Authentication my app? {reauthentication}
See Facebook’s Documentation: Re-Authentication
You can build your force Re-Authentication URL as below:
String reAuthUrl = facebook.getOAuthReAuthenticationURL(callbackURL, "random_nonce");
2nd argument is ‘auth_nonce’ parameter that is a completely arbitrary alphanumeric code that your app generates. It can be used to provide replay protection. You should check this nonce hasn’t been used before.
4. How to re-ask for a declined permissions?
See Facebook’s Documentation: Re-asking for Declined Permissions
One of the best practices with Facebook Login is to not request read permissions and publishing permissions at the same time. To support this your app can ask for more permissions later, well after someone has logged in.
AuthOption authOption = new DialogAuthOption().authType(AuthType.REREQUEST);
String url = facebook.getOAuthAuthorizationURL(callbackURL, authOption);