Facebook API:无法在 Android 上登录

2024-06-22

我正在尝试使用 Facebook API 在 Android 上实现 Facebook 登录。我已经按照方法做了一切Facebook 登录流程 http://developers.facebook.com/docs/android/login-with-facebook/说。代码如下。

public class FBSignIn extends Fragment {
    private UiLifecycleHelper uiHelper;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        final View v = super.onCreateView(inflater, container, savedInstanceState);
        setTitle("Sign In");
        reloadTemplate();

        uiHelper = new UiLifecycleHelper(getActivity(), callback);
        uiHelper.onCreate(savedInstanceState);

        return v;
    }

    @Override
    public void onResume() {
        super.onResume();
        uiHelper.onResume();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    public void onPause() {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        uiHelper.onSaveInstanceState(outState);
    }

    @Override
    public boolean executeCommand(BaseWebView webView, String command, String data) {

        if (command.equalsIgnoreCase("login")) {
            Session session = Session.getActiveSession();

            if (session != null && session.isOpened()) {
                loginWithFBToken(session.getAccessToken());
                return;
            }

            Session.openActiveSession(getActivity(), true, callback);
        }

        return true;
    }

    private Session.StatusCallback callback = new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            onSessionStateChange(session, state, exception);
        }
    };

    private void onSessionStateChange(Session session, SessionState state, Exception exception) {
        if (state.isOpened()) {
            // Facebook logged in...

        } else if (state.isClosed()) {
            //Facebook logged out...
        }
    }

}

然而,之后Session.openActiveSession()打电话,在onSessionsStateChange()函数,我首先得到state == CLOSED_LOGIN_FAILED;之后第二次调用state == OPENING。所以它永远不会进入OPENED state.

这段代码有什么问题?我非常感谢你的帮助。

附:我已经注释掉了有关的所有内容uiHelper并且,在我的主要活动中,提供了重写的方法:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    }

现在第一个电话onSessionStateChange附带state == OPENING and exception == null。第二次通话附带state == CLOSED_LOGIN_FAILED and exception == Invalid access token。这意味着什么?


我已经解决了这个问题。原因是我们的应用程序以沙盒模式在Facebook中注册,只有某些用户可以使用Facebook登录。当我用其中一个帐户登录时,它起作用了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Facebook API:无法在 Android 上登录 的相关文章

随机推荐

  • 在 Windows 10 家庭版上运行性能配置文件

    我正在尝试在 Windows 10 上运行 IIS Express 的 Visual Studio 2017 探查器 但我遇到了一些麻烦 当我尝试安装所有必需的 IIS 组件时 我注意到我缺少一些组件 因为我运行的是 Windows 10
  • Rails button_to:如何指定控制器?

    我不明白这里发生了什么事 我想放一个button to在我 哈姆 看来 如果我这样做 button to New action gt new 生成的页面有
  • 处理算法中的问题/错误的推荐方法

    将堆栈跟踪排除在外 可以说 错误 的想法是一个您不希望发生但确实发生的问题 如果我使用布尔系统来检查操作是否成功完成 它将如下所示 String array new String 10 int i 0 public boolean acce
  • 为什么 LambdaExpression.Compile() 在 iOS (Xamarin) 上工作?

    由于 Xamarin iOS 不支持在运行时生成代码 为什么 Compile 和 DynamicInvoke 按预期工作 例如 以下代码可以正常工作 var lambda Expression Lambda Expression Add E
  • VB6 HTTP 请求到 VB.Net 2.0 的转换

    我正在尝试将旧版 VB6 组件 不是我编写的 更新到 NET 平台 有一个函数可以将 XML 字符串发送到 URL Function PostToUrl ByRef psUrl ByRef psData Byref psResponseTe
  • 如何获取 cql 查询的墓碑计数?

    我正在尝试评估在我们的应用程序的一个表中创建的墓碑数量 为此 我尝试使用nodetool cfstats 我是这样做的 create table demo test a int b int c int primary key a inser
  • 如何在 Swift 中模拟 UIApplication?

    我目前正在使用 Quick Nimble 进行 Swift 单元测试 我正在建立一个Inviter通过不同方法发送应用程序邀请的类 我需要模拟 UIApplication 来验证我的代码调用openURL 到目前为止我的代码 import
  • PHP MySQL - 选择所有到期日期 = 今天的日期 + 7 天

    我正在使用 PHPMyadmin 并使用 PHP 将值放入数据库中 我使用时间戳存储产品的到期日期 如下所示 例如 2012 11 04 我想选择所有到期日期等于今天日期加 8 天的日期 例如上面的那个 我还想在单独的页面中选择所有到期日期
  • MySQL将unicode字符与ascii版本匹配

    我正在运行 MySQL 5 1 50 并且有一个如下所示的表 organizations CREATE TABLE organizations id int 11 NOT NULL AUTO INCREMENT name text CHAR
  • 无法在 ARKit 中旋转 SCNNode

    我试图在 y 轴上旋转 SCNNode 以便我的节点 箭头 指向正确的方向 我想制作一个使用 ARKit 的导航应用程序 每个箭头都需要指向我收到的路线的下一个位置 路线检索工作正常 这些节点将添加到场景的 rootNode 中 在某些时候
  • 我可以使用Hyperledger Fabric v1.0中MSP生成的公钥/私钥来加密/解密数据吗?

    在Hyperledger Fabric v1 0中 用户可以通过MSP 成员服务提供商 在区块链网络中注册并注册 注册和登记后 用户将获得一个公钥 在证书中 和一个私钥 按照我的理解 私钥由调用者使用来签署交易 而公钥由对等方用来验证签名者
  • C# 中的文件名匹配问题

    我之前发布过类似的内容 但它是关于处理命令提示符的 与另一个实例一样 我尝试在 ERP 系统中的备份之前进行一些自动文件清理 我对其执行维护 以平滑流程 因为我对其中 6 个系统至少执行两次维护 每一个月 所以 这里有一些正在发生的事情的例
  • Django-allauth 注册、登录和社交连接集成到一页中

    如何使用 django allauth 将社交登录 登录表单和注册表单加载到索引页面 类似于您访问 facebook com 时的情况 帐户 网址已经可以使用 我尝试复制
  • JSON 解析 C# 模型

    我似乎无法解析一些 json 以将其转换为模型 JSON status ok count 100 data nickname God id null account id 1000076613 nickname god0 id null a
  • 为什么 sed 不将 \t 识别为制表符?

    sed s t 1 filename gt sedTmpFile mv sedTmpFile filename 我期待这个sed脚本插入一个tab在每一行前面 filename然而事实并非如此 由于某种原因 它正在插入一个t反而 Not a
  • 使用 pythonwhois 测试域名可用性

    我使用成功pythonwhois 安装有pip install 检查 com 域的可用性 import pythonwhois for domain in aaa com bbb com details pythonwhois get wh
  • 如何在 R 中使用 glm 循环多次曝光和结果以及不同模型?

    下面的代码当前针对每个结果的每次曝光 每个结果 3 次曝光 运行未经调整的 glm 并将结果导出到列表中 对于每次曝光 我需要 3 个模型 model 1 未调整 我们目前有 model 2 针对 cov1 进行调整 model 3 针对
  • 矢量可绘制图像视图上的洪水填充算法

    我想创建这样的应用程序 洪水填充算法 https stackoverflow com q 9748206 4535930 我应用了该代码 它可以很好地处理 JPG 或 PNG 文件 但我想将该算法与 Vector 可绘制图像视图一起使用 V
  • 第二次运行程序返回 EADDRINUSE 进行绑定 [重复]

    这个问题在这里已经有答案了 可能的重复 进程退出时释放绑定端口 https stackoverflow com questions 548879 releasing bound ports on process exit Windows 和
  • Facebook API:无法在 Android 上登录

    我正在尝试使用 Facebook API 在 Android 上实现 Facebook 登录 我已经按照方法做了一切Facebook 登录流程 http developers facebook com docs android login