HelloFacebookSample无效,Facebook SDK更新状态:Android

 qiuyuehuang 发布于 2023-01-18 12:17

我试图从Facebook SDK中获取HelloFacebookSample,但是我遇到了一些问题.发布状态更新显示Facebook对话框,看起来很棒,但是当我按下分享按钮时,我收到错误,"(#404)密钥散列XXX-XXXX与任何存储的密钥哈希都不匹配".我想知道在我的过程中我做错了什么.这就是我所做的.

1)我做了keytool -exportcert -alias androiddebugkey -keystore"path"\ debug.keystore | openssl sha1 -binary | openssl base64

我从cmd运行上面的内容,并收到一个哈希号.这似乎有效,因为FB文档中提到的所有内容都发生了,这意味着我被提示输入密码而我使用了"android",之后我立即得到了一个数字.

2)我创建了一个名为"Example"的应用程序,然后将我的号码输入开发人员门户.我有一个屏幕截图,我把它放在哪里.

在此输入图像描述

3)然后我回到示例项目,并更改了应用程序ID以匹配我的开发人员门户中的内容(在上面的屏幕截图中).

在那之后,我认为事情会很好.但我仍然收到这个错误.然后我尝试使用代码片段获取密钥哈希.在我的onCreate中,我有以下内容:

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);

        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (NameNotFoundException e) {
            Log.d(TAG, "NameNotFoundException");
        } catch (NoSuchAlgorithmException e) {
            Log.d(TAG, "NoSuchAlgorithmException");
        } 

返回的是"NameNotFoundException",所以没有键.我如何让这个工作,我在步骤中缺少什么?提前致谢.

1 个回答
  • 你的代码很好,我第一次得到了NameNotFoundException

    try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.facebook.samples.hellofacebook",
                    PackageManager.GET_SIGNATURES);
    
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.e("KeyHash:",
                        Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (NameNotFoundException e) {
            Log.d("NameNotFoundException", "NameNotFoundException");
        } catch (NoSuchAlgorithmException e) {
            Log.d("NameNotFoundException", "NoSuchAlgorithmException");
        }
    

    然后我改变了包裹 PackageInfo info = getPackageManager().getPackageInfo( "MY.PACKAGE.NAME.GOES.HERE", PackageManager.GET_SIGNATURES);

    确保项目清单文件中的软件包名称是否com.facebook.samples.hellofacebook可用.

    2023-01-18 12:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有