Ral*_*ann 3 android facebook facebook-android-sdk facebook-access-token
在应用程序启动时,我需要知道用户是否已登录才能显示登录页面.
我的第一次尝试是打电话AccessToken.getCurrentAccessToken(),但这不起作用,请参阅/sf/answers/2089797461/
我的第二次尝试是使用AccessTokenTracker,但这也不起作用.要使用AccessTokenTracker,我必须首先初始化Facebook SDK.但在此初始化期间,访问令牌被发送到跟踪器.此时未创建跟踪器,无法接收令牌.
我的第三次尝试是创建我自己的AccessTokenTracker,看起来像原始的.我在初始化SDK之前创建并注册了它.现在我的跟踪器在SDK初始化过程中得到了令牌.
凭借这些知识,我在Facebook上打开了一个错误报告:
Facebook的答案:
这看起来不像bug.AccessTokenTracker :: onCurrentAccessTokenChanged应该在类收到令牌时通知您.
我知道这不起作用.现在我知道没有错误.
但是如何解决我的问题呢?
这不起作用:
FacebookSdk.sdkInitialize(getApplicationContext());
mAccessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
Timber.i("AccessTokenTracker oldAccessToken: " + oldAccessToken + " - currentAccessToken: " + currentAccessToken);
}
};
Run Code Online (Sandbox Code Playgroud)
小智 5
您需要首先初始化SDK,如您所说.然后创建访问令牌跟踪器,然后通过AccessToken.getCurrentAccessToken()检查当前访问令牌.
如果SDK初始化程序足够快以至于在您创建跟踪器之前设置了令牌,那么您对currentAccessToken的调用将获得令牌.如果sdk初始化比跟踪器注册慢,那么跟踪器将获得访问令牌.
| 归档时间: |
|
| 查看次数: |
14326 次 |
| 最近记录: |