android - 如何在 Android 应用程序中保持与 facebook 的连接

标签 android facebook authentication

我正在开发一个需要集成 Facebook 社交功能的应用程序。

在我的应用程序中有一个按钮可以将用户连接到他的 Facebook 个人资料。 当用户按下这个按钮时,我只打开一个带有 Facebook 站点和用户 Facebook 页面的 webview。现在假设我知道他的电子邮件和密码,我想自动连接他,他不必每次都输入他的电子邮件和密码。 我试图解决它抛出我的下一个 question , 但如您所见,没有成功。

我还尝试使用 CookieSyncManager、CookieManager 和手动处理持久保存 cookie。

我想我可以通过更改发送到 webView 的 url 来解决它,但我不知道哪个 url。 (试过 http://www.facebook.com/connect/connect_to_external_page_widget_loggedin.phphttp://www.facebook.com/plugins/login.php 然后连接用户 Facebook 页面的 url,例如 http://www.facebook.com/UserProfile)

非常感谢任何帮助!

谢谢。

最佳答案

您不能手动登录用户到 facebook。这就是 oAuth 的重点,该过程对您的应用程序应该是透明的,当用户完成身份验证后,您的应用程序将只会获得一个 AccessToken。

从那时起,AccessToken 几乎可以永远与您同在。

以下情况无效:

  1. session 过期

    假设您正在使用 Facebook Android SDK 对 facebook 进行身份验证/集成,这可以通过添加对 onResume() 的调用来解决。调用成功后,您的 token 将在 60 天内有效。

    public void onResume() {    
        super.onResume();
        facebook.extendAccessTokenIfNeeded(this, null);
    }
    
  2. 用户修改密码

  3. 用户取消对您的应用的授权

  4. 用户退出 Facebook

    这三种情况你无能为力!您的 token 将失效,您将不得不要求用户使用正常流程重新进行身份验证。

Follow this tutorial to integrate Facebook inside your Android app

关于android - 如何在 Android 应用程序中保持与 facebook 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134371/

相关文章:

java - 如何为所有(多个)ImageView 设置相同的 OnClickListener

java - 取消单击 ListView 元素

java - 当部分 View 不在屏幕上时获取 View 高度?

ruby-on-rails - 使用 Rails 实现 facebook-OmniAuth

ios - 如果用户已经使用 facebook 登录,则使用 swift 调用 segue

symfony - 添加验证码到 Symfony2 登录页面

java - 是否有任何第三方库可以帮助简化服务器端登录模块的实现

android - kotlin协程的正确使用方法

jquery - fb-comment fluid with wrapper container 通过 jquery

python - Django 。当我们登录时,我们如何自动从 AnonymousUser 转移到 AbstractBaseUser