Android单点登录
我在使用更新版本的Facebook时遇到登录失败的无效密钥错误。如果我删除它-它工作得很好 创建哈希键的正确方法是什么 我知道Android中的单点登录有很多问题和答案,但没有一个能帮助我在Android中实现单点登录 我的代码:Android单点登录,android,facebook,login,single-sign-on,Android,Facebook,Login,Single Sign On,我在使用更新版本的Facebook时遇到登录失败的无效密钥错误。如果我删除它-它工作得很好 创建哈希键的正确方法是什么 我知道Android中的单点登录有很多问题和答案,但没有一个能帮助我在Android中实现单点登录 我的代码: public class Main extends Activity { Facebook facebook = new Facebook("XXXXXXXXXX"); @Override public void onCreate(Bundl
public class Main extends Activity {
Facebook facebook = new Facebook("XXXXXXXXXX");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
facebook.authorize(this, new DialogListener() {
@Override
public void onComplete(Bundle values) {}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
}
然后我使用命令生成了一个散列键
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
另外,我拥有并给出了OpenSSL的位置,直到OpenSSL.exe
在我按下Enter键后,它要求输入密码,我给了安卓作为密码。然后我得到一个密钥并填写“我的应用程序”。创建散列密钥的正确方法 请按照以下步骤操作 以下是步骤:
C://
中创建一个文件夹-OpenSSL,并将提取的代码复制到此处debug.keystore
文件路径。如果找不到,请在C://
中进行搜索,并在下一步中使用命令中的路径keytool.exe
路径,在命令提示符中转到该目录/并运行此命令(在一行中):
$keytool-exportcert-alias androiddebugkey-keystore“C:\Documents and Settings\Administrator.android\debug.keystore”|“C:\OpenSSL\bin\OpenSSL”sha1-binary |“C:\OpenSSL\bin\OpenSSL”base64
嗯,这可能不是答案,我想你检查过了
您是否使用Windows XP生成哈希?可能存在问题。首先,您需要根据路径使用以下代码创建哈希键
C:\Documents and Settings\Logistic103>keytool -export -alias androiddebugkey -keystore "C:\Documents and Settings\Logistic103\.android\debug.keystore" | E:\Downloads\openssl-0.9.8k_WIN32\bin\openssl.exe sha1 -binary | E:\Downloads\openssl-0.9.8k_WIN32\bin\openssl.exe enc -a -e
然后输入密码:
Enter keystore password: android
然后转到Facebook开发者并登录到Facebook。登录后转到应用程序并单击编辑设置链接:
然后将生成的密钥添加到应用程序中
你就是这样做的;)
以上步骤对我来说效果很好。最好使用这段代码
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("YOURHASH KEY:",
Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
请点击此链接
您可以有问题地为已签名和未签名的应用程序生成哈希键。从你的Logcat上复制这把钥匙 嗯,这可能根本不是一个无效密钥的错误,我有一个类似的错误,无效的访问令牌…说用户可能已经更改了他的密码。。。但事实上,这是一个不同的过程issue@Venky您好,我在4-5个月前也遇到过同样的问题,我最终按照上述步骤解决了这个问题,但我记得我在facebook api中做了一些更改,但我现在不记得了,我会尽快恢复