Android   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 应用程序错误配置为Facebook登录:Kindle Fire集成问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我们在我们的Kindle Fire安卓应用上集成了Facebook登录.它在大多数情况下都没有任何问题.但偶尔对某些用户来说,当他们尝试使用facebook登录进行注册时,会失败,并显示错误“APp配置错误,因为Facebook登录”.我们检查了哈希密钥,包名称以及所有这些,它们都是正确的.正如我所说,它适用于95%的用户.对于那些失败的用户,它会反复失败.来自facebook的任何人都可以帮我们解决这个问题吗?赞赏. (顺便说一句,我们使用相同的Facebook应用程序为Android应用程序的谷歌播放版本也使用不同的哈希键,我们从来没有这个问题为我们的谷歌播放应用程序.我们从亚马逊得到了Kindle的哈希键.)因为它没有在我们的任何设备中失败,并且仅在某随机用户的设备上失败,我们无法获得任何调试消息.

PS:我已经阅读了线程App is misconfigured for Facebook login: Android Facebook integration issue.我是新用户,我不能在那里问这个问题.

解决方法:

我们在亚马逊appstore上的一个应用程序遇到了同样的问题.在我们的例子中,我们意识到只有在这三个条件成立时才@R_197_11251@问题:

> Kindle Fire HD
>已安装Facebook App并且用户登录
>用户还通过设置登录Facebook – >我的帐户 – >管理社交帐户

这可以解释为什么在你的情况下它只发生在5%的情况下.

据我们所知,亚马逊重新启动.apk,它打破了Facebook Android App Key Hash检查.

解决方包括

>获取@R_671_9616@程序的Amazon .apk(不是我们提交的那个,但是由亚马逊appstore分发的那个)
>从.apk文件提取签名证书
> Base64编码编码证书的SHA摘要
>将生成的Base64密钥哈希添加到我们的Facebook应用程序设置中

解决了这个问题.

获得.apk证明是棘手的.应用程序驻留在设备文件系统的/ data / app文件夹中.但是,这个目录受到保护以防止列出它,所以除非你知道你正在寻找的文件名称,否则你运气不好.你当然可以根设备.或者你可以通过adb pull /data/app/\u0026lt;app-id\u0026gt;\u0026lt;suffix\u0026gt;.apk尝试你的盲目运气,其中后缀是空字符串或-1,-2等,直到你成功.例如.:

$adb pull /data/app/com.example.game.apk
remote object '/data/app/com.example.game.apk' does not exist
$adb pull /data/app/com.example.game-1.apk
remote object '/data/app/com.example.game-1.apk' does not exist
$adb pull /data/app/com.example.game-2.apk
3658 KB/s (1085140 bytes in 0.289s)

如果此方法失败,则生根可能是唯一的选择.

获得.apk文件后,可以使用下面的代码获取密钥哈希.保存为Main.java,使用javac Main.java进行编译,并使用java Main< APK>运行,例如:

$javac Main.java
$java Main com.example.game-1.apk
com.example.game-1.apk: 478uEnKQV+fMQT8Dy4AKvHkYibo=

将478uEnKQV fMQT8Dy4AKvHkYibo =添加到我们的Facebook App设置的关键哈希值然后修复问题.我很好奇,如果其他人找到我们得到的相同哈希(这意味着所有亚马逊游戏都使用相同的密钥辞职).在我们的例子中,哈希以wwYPegrz开头….

这是代码

import java.security.messageDigest;
import java.security.cert.Certificate;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

import sun.misc.bASE64Encoder;

public class Main {
    public static void main(String[] args) throws Exception {
        for (String jarFilename : args)
            extractHash(jarFileName);
    }

    private static void extractHash(String jarFileName) throws Exception {
        BASE64Encoder base64 = new BASE64Encoder();
        messageDigest sha1 = messageDigest.geTinstance("SHA");
        Set<Certificate> certificates = new HashSet<Certificate>();
        JarFile jarFile = new JarFile(jarFileName);
        for (JarEntry jarEntry : Collections.list(jarFile.entries())) {
            jarFile.geTinputStream(jarEntry).skip(Long.max_value);
            Certificate[] certs = jarEntry.getCertificates();
            if (certs == null)
                conTinue;
            certificates.addAll(Arrays.asList(certs));
        }
        System.out.printf("%s:", jarFileName);
        for (Certificate cert : certificates) {
            byte[] digest = sha1.digest(cert.getEncoded());
            System.out.printf(" %s", base64.encode(digest));
        }
        if (certificates.isEmpty())
            System.out.printf(" NOT SIGNED!");
        System.out.println();
        jarFile.close();
    }
}

大佬总结

以上是大佬教程为你收集整理的android – 应用程序错误配置为Facebook登录:Kindle Fire集成问题全部内容,希望文章能够帮你解决android – 应用程序错误配置为Facebook登录:Kindle Fire集成问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: