当前位置: 首页 > 知识库问答 >
问题:

Android facebook登录不适用于已安装的facebook应用程序

方博学
2023-03-14

我已经设置了简单的facebook登录。对于Android 2.3.6,一切正常,用户得到提示登录对话框,输入数据,应用程序继续运行。我以为这是Android版本的错误,但事实证明,当手机上安装了facebook应用程序时,登录不起作用!

在Galaxy Ace 2.3.6 HTC Desire 4.1.2 Galaxy Note 4.1.2 Android emulator 4.1.2上进行了测试

就连facebook的样本都不起作用!

每次应用程序执行时-else{Log.d(“会话未打开”,“会话未打开”);}

会议似乎还没有开始,但为什么会这样?遵循本指南-https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

代码:

Session.openActiveSession(this, true, new Session.StatusCallback() {

        @Override
        public void call(final Session session, SessionState state, Exception exception) {

            if (session.isOpened()) {

                Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        if (user != null) {
                            Log.d("Access_token", session.getAccessToken());
                        }
                    }
                });
            } else {
                Log.d("SESSION NOT OPENED", "SESSION NOT OPENED");
            }
        }
    });

共有3个答案

栾景胜
2023-03-14

使用此函数获取哈希键(debug和release apk),并将其放在developer中的应用程序中。脸谱网。com/apps

private void calculateHashKey(String yourPackageName) {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                yourPackageName,
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}

这对我帮助很大。。希望这对你也有帮助。。

金毅
2023-03-14

查看步骤4的底部:https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

如果您没有正确输入您的应用程序密钥哈希,通过WebView弹出窗口(如果未安装应用程序)登录Facebook仍然有效,但通过本机Facebook应用程序登录则无效。

您应该在LogCat中看到此异常

com.facebook.http.protocol.ApiException: remote_app_id does not match stored id

Facebook SDK会打印其异常,因此如果还有其他问题,请检查该异常。

穆飞龙
2023-03-14

我写这个答案是为了那些正在使用Facebook SDK 4. X的人

您可以通过以下两种方式之一打开facebook的登录门户:

>

如果你还没有安装Facebook应用程序在您的Android设备然后它是好的使用WebView

为此,Facebook提供3个常量

  1. NATIVE_ONLY(仅当您想在Facebook应用程序中打开时使用)
  2. WEB_ONLY(仅在WebView中打开时使用)
  3. NATIVE_WITH_FALLBACK(推荐Facebook检测和opnewebView如果应用程序未安装)

查看下面的链接了解详细信息https://developers.facebook.com/docs/reference/android/current/class/LoginButton/ https://developers.facebook.com/docs/facebook-login/android/v2.2#troubleshooting

     LoginButton.setLoginBehavior(LoginBehavior.NATIVE_WITH_FALLBACK);
     LoginButton.setLoginBehavior(LoginBehavior.NATIVE_ONLY);
     LoginButton.setLoginBehavior(LoginBehavior.WEB_ONLY);
 类似资料:
  • 我是新的Android。我试图将FB登录与我的Android应用程序集成。我已经按照developers.facebook.com的所有说明进行了集成。然而,当我试图运行我的应用程序时,它会在发布时崩溃。 请注意,我的AndroidManifest.xml中已经有Facebook应用程序ID、元数据标签和android活动标签。 布局如下: 以下是my LoginActivity的代码片段: 以下

  • 我正在我的应用程序中实现谷歌登录。我知道我必须在发布应用程序时生成生产就绪SHA1密钥。我这样做是使用以下命令。首先我改变了我的目录,我的. jks存储在终端,然后我使用以下命令 我在firebase中更新了SHA1。生成已签名的apk后,我通过usb将我的apk传输到我的手机上,谷歌登录工作,但一旦我将相同的apk上传到Play Store,谷歌登录就无法工作。谁能帮帮我吗。仅供参考,我也使用A

  • 我正在构建基于Web的多租户SaaS应用程序。应用程序已在我的租户中注册,每个订阅Office 365的客户都将在Azure AD中获得服务主体对象。 我在客户租户中从外部帐户(Microsoft帐户)登录时遇到问题。 我创建了一个示例,并试图看看我可以从访问令牌中获得什么。 示例包含一个使用 MSAL 库处理身份验证的客户端应用程序 (.js) 和两个具有受保护终结点的 API。我还创建了三个独

  • 在尝试使用Facebook登录时,我一直看到这样的错误。 我检查了一切,包括设置pList 并遵循此链接中的解决方案此应用程序的开发人员没有正确设置此应用程序的Facebook登录? 通过将“是否要使此应用及其所有live功能可供公众使用?”设置为“是” 但是后来这个图像出现了。 当我第一次尝试使用facebook登录时,甚至不需要将实时功能转向YES来使其工作,我想知道哪里出错了。

  • 我试图在谷歌播放上发布我的应用程序。我的应用程序中有脸书登录。直到昨天,一切都很好,直到我用运行应用程序。但是当我使用自己的发布密钥并签署我的应用程序时,脸书没有登录,我似乎不知道为什么。 遵循这个链接,并做了所有的冰毒:所以:Androidfacebook应用程序的密钥哈希 我换了机器,换了平台(windows和mac osx ML),也得到了一个解决方案,但同样的问题。它不会登录。下面的代码在

  • 编辑1我知道这个问题已经问过了,但是没有人回答,stacktrace也没有添加到里面,所以我又问了一遍。 如果我安装了twitter应用程序,然后尝试登录,那么应用程序将成功地用twitter登录,但如果我从移动端卸载twitter应用程序,然后尝试登录应用程序,那么我收到以下错误,无法用twitter登录 未能获取请求令牌 我没有看到任何WebView。之后点击登录与twitter按钮。 E/T