我已经集成了最新的Facebook android sdk(SDK 4.0)。这是我在onCreate方法中添加的代码。
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,但始终为null。无论如何,新的SDK中都没有在后台登录,因此我不必要求用户总是像以前在会话类中那样登录。
LoginManager返回的访问令牌将保存在共享的首选项中,因此,下次打开应用程序时,AccessToken.getCurrentAccessToken()应该具有相同的访问令牌,这与Session类的访问令牌相同。您可以查看SDK随附的示例,以查看它们是否有效。
确保您没有在会话之间重新安装应用程序,或将当前访问令牌显式设置为null。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句