我已经集成了最新的Facebook android sdk(Sdk 4.0)。 这是我在onCreate方法中添加的代码。Facebook AccessToken.getAccessToken在第一次登录后打开应用程序时为空
FacebookSdk.sdkInitialize(this.getApplicationContext());
callbackManager = CallbackManager.Factory.create();
if(AccessToken.getCurrentAccessToken()!=null){
Log.d(FBTAG,"facebook already logged in");
isFBLogin = true;
}
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
Log.d(FBTAG,"facebook log in");
isFBLogin = true;
}
@Override
public void onCancel() {
// App code
isFBLogin = false;
}
@Override
public void onError(FacebookException error) {
isFBLogin = false;
Log.d(FBTAG,"facebook login error: "+error);
// App code
}
});
这是我用来onClickLogin
public void onClickLogin() {
LoginManager.getInstance().logInWithPublishPermissions(this, PERMISSIONS);
}
代码我可以通过点击登录按钮和处理onClickLogin功能登录。现在,下次我打开应用程序时,我正在检查AccessToken.getAccessToken以检查用户是否已登录Facebook,但始终为空。 反正在新的sdk中没有登录的背景,所以我不必要求用户永远像以前的版本一样在会话类中登录。
当再次登录时,您应该刷新令牌,因为用户可能已经撤消了您的应用的权限或会话已过期(我认为这是30或90天)。我希望你会发现[我的回答](http://stackoverflow.com/a/33151438/1276636)这个问题有用.. – Sufian 2016-05-16 10:46:20