如何强制android facebook sdk重新进行身份验证

时间:2017-05-29 03:01:12

标签: android facebook facebook-sdk-4.0

简短版:我希望我的应用以某种方式删除/重置同一设备上的Facebook应用,以便在注销后它总是会要求用户登录Facebook应用并忘记所有帐户历史记录保持隐私。

长版: 我正在构建一个执行特定任务的Android应用程序:

  1. 应用程序将捕获图像
  2. 应用程序将要求用户登录Facebook(例如Facebook集成)
  3. 应用程序将尝试通过用户的Facebook帐户共享捕获的图像
  4. 然后,应用会自动退出当前用户帐户
  5. 我按照Android Facebook SDK文档来构建登录功能。它说我的设备必须安装Facebook应用程序,所以我安装了它,一切都很顺利。

    图像共享进展顺利。

    但后来我希望我的应用程序完全退出当前的Facebook帐户。我使用以下代码跟踪here的答案:

    public void disconnectFromFacebook() {
    
        if (AccessToken.getCurrentAccessToken() == null) {
            return; // already logged out
        }
    
        new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
                .Callback() {
            @Override
            public void onCompleted(GraphResponse graphResponse) {
    
                LoginManager.getInstance().logOut();
    
            }
        }).executeAsync();
    }
    

    它已注销,但已登录Facebook应用程序的Facebook帐户将保持不变。然后,当另一个用户想要登录时,将弹出一个场景like this,表示Facebook Apps保存了帐户历史记录并且没有完全登出。

    由于我的应用程序将部署在人们可以通过我的应用程序自由捕获照片并将其共享到Facebook的公共场所,我希望我的应用程序始终从我的设备永久注销Facebook帐户。这意味着,当下一个人使用我的应用程序时,我希望它在没有Facebook应用程序记住每个登录到它的人的情况下询问全新的Facebook登录身份验证。

    我已经尝试了一些解决方法:

    1. 我按照here的说明禁止facebook登录使用webview, 这个解决方案似乎总是要求登录验证,但随后 它还将重定向到Facebook Apps,因此它毫无意义。
    2. 我想通过网络应用程序分享图像,但不仅无法使用我的代码自动共享,回调也无法到达我的应用程序。此外,文档还声明所有共享任务必须使用Facebook SDK完成。
    3. 对不起,我不能更好地编译我的问题。

      提前致谢。

1 个答案:

答案 0 :(得分:0)

使用Web API而非个人应用程序尝试验证,使用移动应用程序进行的Facebook登录仅供私人用户使用。这是一个完整的facebook 4.0.+ login example