我正在使用Facebook Android SDK 4.0(最新更新版本)。初始设置后我登录了我的应用程序。然后我退出了我的应用程序。如果再次启动我的应用程序,则用户未处于登录状态。当我使用调试器时,它显示“ACCESS TOKEN REMOVED”。使用Access Token检查用户是否处于登录状态的过程是什么?
我尝试了新的登录方法(根据较新的版本4.0),其中提到了登录过程。我已经做了。但每当我打开访问令牌状态是“访问令牌删除”。我在仪表板设置中检查了App id,包名称,活动名称。全部正确。帮我找到解决这个问题的方法。
答案 0 :(得分:14)
你可以通过使用获得access_token 。loginResult.getAccessToken()为gettoken(); 如下面的代码
LoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
String accessToken= loginResult.getAccessToken().getToken();
}
答案 1 :(得分:12)
默认情况下,SDK不会将访问令牌记录到logcat(这是为了避免通过日志泄露用户令牌)。
但是,您可以在调试模式下启用日志记录行为来记录访问令牌。只需在调用FacebookSdk.sdkInitialize()
时添加此项,但请确保仅在调试模式下执行此操作:
if (BuildConfig.DEBUG) {
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
答案 2 :(得分:5)
您可以使用
获取令牌 AccessToken.getCurrentAccessToken().getToken()
使用此功能,您可以随时获取令牌,如果您使用LoginResult,则只需在登录时获取一次,当您重新启动应用程序时,不会调用onSuccess。
如果您在重新启动后需要配置文件,请使用
Profile.getCurrentProfile();
如果返回null,则不会显示
答案 3 :(得分:0)
我得到了解决方案。我在单独的线程中执行GraphRequest
方法。这是错误的方法。所有asynch taks应该在主线程内运行。