Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook sdk 3.0 android_Android_Facebook_Facebook Android Sdk - Fatal编程技术网

Facebook sdk 3.0 android

Facebook sdk 3.0 android,android,facebook,facebook-android-sdk,Android,Facebook,Facebook Android Sdk,我已经在developer.facebook.com上无数次浏览了android版hello world facebook应用程序的基本教程,以确保我没有犯错误,但我收到了错误“remote_app_id与存储的id不匹配”,但它确实匹配,并且不确定为什么会抛出该错误。此外,当我运行样本时,我得到一个失败的活页夹事务。现在奇怪的是,如果我卸载手机上的fb应用程序,并强制用户登录facebook,那么基本的hello world应用程序就可以工作了。是我做错了什么,还是这是facebook sdk

我已经在developer.facebook.com上无数次浏览了android版hello world facebook应用程序的基本教程,以确保我没有犯错误,但我收到了错误“remote_app_id与存储的id不匹配”,但它确实匹配,并且不确定为什么会抛出该错误。此外,当我运行样本时,我得到一个失败的活页夹事务。现在奇怪的是,如果我卸载手机上的fb应用程序,并强制用户登录facebook,那么基本的hello world应用程序就可以工作了。是我做错了什么,还是这是facebook sdk的问题。我已经下载并重新安装了所有内容,但仍然解决了相同的问题

散列值是错误的。这似乎是一个windows问题或人类方面的失败。 我用过:

“keytool.exe的位置”-exportcert-别名-keystore“keystore的位置”|“openssl.exe的位置”sha1-binary |“openssl.exe的位置”base64

得到了错误的散列值。无论如何,我找到了这篇文章

下载并运行keygeneration应用程序,并从logcat中获取哈希值。 这对于调试键很好,但不确定何时将程序释放到野外

希望这有助于解决问题

散列值是错误的。这似乎是一个windows问题或人类方面的失败。 我用过:

“keytool.exe的位置”-exportcert-别名-keystore“keystore的位置”|“openssl.exe的位置”sha1-binary |“openssl.exe的位置”base64

得到了错误的散列值。无论如何,我找到了这篇文章

下载并运行keygeneration应用程序,并从logcat中获取哈希值。 这对于调试键很好,但不确定何时将程序释放到野外

希望这有帮助

另一个可能的错误(发生在我身上)是:在Facebook应用程序控制台设置“密钥哈希”,并使用另一个密钥库对android应用程序进行签名

不幸的是,这是由于导致此错误而导致的。它说android开发人员应该在您的示例中使用默认的android调试密钥,但没有解释密钥散列应该使用您将为应用程序签名的相同密钥库生成

我的建议是在facebook控制台上设置两个关键哈希:

  • 默认android调试键:
  • keytool-exportcert-alias androiddebugkey-keystore~/.android/debug.keystore | openssl sha1-binary | openssl base64

  • 您的应用程序发布密钥:
  • keytool-exportcert-alias yourapplebasealias-keystore~/.your/path/release.keystore | openssl sha1-binary | openssl base64

    请记住:不能发布使用SDK工具生成的调试密钥签名的应用程序。因此,仅使用前一个命令行生成的哈希键发布应用程序是不可能的(正如facebook教程所建议的)

    有关签署应用程序的更多信息,请访问。

    另一个可能的错误(发生在我身上)是:在Facebook应用程序控制台设置“密钥哈希”,并使用另一个密钥库签署android应用程序

    不幸的是,这是因为导致了这个错误。它说android开发人员应该在您的示例中使用默认的android调试密钥,但没有解释密钥散列应该使用您将为应用程序签名的相同密钥库生成

    我的建议是在facebook控制台上设置两个关键哈希:

  • 默认android调试键:
  • keytool-exportcert-alias androiddebugkey-keystore~/.android/debug.keystore | openssl sha1-binary | openssl base64

  • 您的应用程序发布密钥:
  • keytool-exportcert-alias yourapplebasealias-keystore~/.your/path/release.keystore | openssl sha1-binary | openssl base64

    请记住:您无法发布使用SDK工具生成的调试密钥签名的应用程序。因此,仅使用前一个命令行生成的哈希密钥(如facebook教程所示)发布应用程序是不可能的

    有关签署应用程序的更多信息,请访问。

    试试

    try {
    PackageInfo info = getPackageManager().getPackageInfo("com.eatapp", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
    } catch (NameNotFoundException e) {
    
    } catch (NoSuchAlgorithmException e) {
    
    }
    
    在您的主要活动中:-)这是我在Android SDK 3.0中唯一可以使用的解决方案

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

    在您的主要活动中:-)如果您使用snippet change Log.i(“PXR”,Base64.encodeToString(md.digest(),0)),这是我在Android SDK 3.0中唯一有效的解决方案;如果使用代码段change Log.i(“PXR”,Base64.encodeToString(md.digest(),0));