首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用android studio时的facebook哈希键

使用android studio时的facebook哈希键
EN

Stack Overflow用户
提问于 2013-06-04 19:29:08
回答 8查看 63.5K关注 0票数 28

我正在使用android studio开发一个使用facebook sdk的应用程序。

当我使用以下命令时

代码语言:javascript
复制
C:\Program Files\Java\jdk1.7.0_21\bin>keytool -exportcert -alias androiddebugkey
 -keystore "C:\Users\ninad\.android\debug.keystore" | "D:\OpenSSL\bin\openssl" s
ha1 -binary |"D:\OpenSSL\bin\openssl" base64

它返回了

y5EquINHD6DvwVJFyJTuUEY3NSU=

当使用这个散列键时,facebook显示错误

无效的android

_

key参数。关键

c33Tm0FL

_

-kxyaPZq1JBLDh767U

不匹配任何允许的键。

使用eclipse和android studio时,facebook需要的哈希键是否不同?其中哪一个是我正确的哈希键?

我在facebook的应用程序中添加了这两个散列键。尽管如此,应用程序仍然显示无效的android

_

key参数。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-06-12 02:45:54

WHy您不会尝试这段代码并检查您正在使用的哈希键。来自facebook文档:

除了仔细检查您的键散列生成步骤之外,还有另一个选项可以确保您使用正确的键散列。它涉及到更改其中一个示例应用程序中的代码,以打印发送到Facebook的签名。

代码语言:javascript
复制
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your.package", 
                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) {

    } catch (NoSuchAlgorithmException e) {

    }
}
票数 74
EN

Stack Overflow用户

发布于 2013-10-19 13:21:35

以下是创建facebook散列键的链接:

代码语言:javascript
复制
public class FacebookHashKeyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_facebook_hash_key);
        try {
            PackageInfo info = getPackageManager().getPackageInfo("your.package.name", 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();
        }
    }
}

代码摘自

这里

..。

票数 7
EN

Stack Overflow用户

发布于 2017-01-25 20:18:28

只需在oncreate方法中运行它

代码语言:javascript
复制
private void printHashKey() {

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "-----------PUT YOUR PACKAGE NAME ------------",
                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 (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }

}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16916646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档