Roh*_*yal 11 android facebook facebook-graph-api facebook-android-sdk facebook-sdk-4.0
我已经集成了最新的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
}
});
Run Code Online (Sandbox Code Playgroud)
这是我用于onClickLogin的代码
public void onClickLogin() {
LoginManager.getInstance().logInWithPublishPermissions(this, PERMISSIONS);
}
Run Code Online (Sandbox Code Playgroud)
我可以通过单击登录按钮并处理onClickLogin函数来登录.现在,下次我打开应用程序的应用程序我正在检查AccessToken.getAccessToken,以检查用户是否已登录在facebook,但它始终为null.在新的sdk中无论如何都不能在后台登录,因此我不必要求用户始终像以前版本一样在会话类中登录.
Fra*_*ank 12
您还可以向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");
}
}
});
Run Code Online (Sandbox Code Playgroud)
小智 6
LoginManager返回的访问令牌将保存在共享首选项中,因此下次打开应用程序时,AccessToken.getCurrentAccessToken()应具有相同的访问令牌,这与Session类的相同.您可以查看SDK提供的示例以查看它们的工作情况.
确保您没有在会话之间重新安装应用程序,或者明确地将当前访问令牌设置为null.
| 归档时间: |
|
| 查看次数: |
16451 次 |
| 最近记录: |