2

我正在构建一个使用 facebook android sdk 和 sso 功能的应用程序。每次启动我的应用程序时,它都会在通过 sso 通过现有 facebook 应用程序登录时短暂显示一个 facebook 窗口。有没有办法隐藏这个屏幕并确保我的活动在检查 facebook 凭据和会话等时保持在最前面。

4

1 回答 1

1

对于第一个是未登录的用户,它要求它弹出登录对话框。但是一旦用户登录并且您尝试发送任何 facebook 请求,它就会检查会话,如果它是有效的,那么它将不会显示对话框。

当您第一次登录时,将过期和访问令牌存储到您的共享首选项中,并在第二次传递/设置这些(过期和访问令牌到 facebook 对象)并检查是否有效会话。

这是简短的代码;存储您访问令牌并在下面的方法 facebook.authorize 中过期:onComplete 侦听器:

例如

Editor editor = mPrefs.edit();
                        editor.putString("access_token",
                                facebook.getAccessToken());
                        editor.putLong("access_expires",
                                facebook.getAccessExpires());
                        editor.commit();

下次通过将这些值传递给 facebook 对象并检查其是否有效?

facebook = new Facebook(MyConstant.Fb_APPID);
            String access_token = preferences.getString("access_token",
                    null);
            long expires = preferences.getLong("access_expires", 0);
            if (access_token != null) {
                facebook.setAccessToken(access_token);
            }
            if (expires != 0) {
                facebook.setAccessExpires(expires);
            }
if (facebook.isSessionValid()){
                // do your work here
            }

希望对你有用....

于 2012-08-01T05:08:39.400 回答