gpt4 book ai didi

android - Facebook AccessToken.getAccessToken 在应用程序打开时为空,即使在首次登录后也是如此

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:26 25 4
gpt4 key购买 nike

我已经集成了最新的 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 登录,但它始终为空。无论如何,新的 sdk 中是否没有在后台登录,这样我就不必总是要求用户登录,就像以前在 session 类中的版本一样。

最佳答案

您还可以在 sdkInitialize 中添加一个 InitializeCallback 并检查回调中的 AccessToken:

FacebookSdk.sdkInitialize(getApplicationContext(), new FacebookSdk.InitializeCallback() {
@Override
public void onInitialized() {
if(AccessToken.getCurrentAccessToken() == null){
System.out.println("not logged in yet");
} else {
System.out.println("Logged in");
}
}
});

关于android - Facebook AccessToken.getAccessToken 在应用程序打开时为空,即使在首次登录后也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29366945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com