Nil*_*hal 6 authentication android facebook
嘿大家刚刚开发了我的第一个登录到Facebook的Android应用程序并尝试状态更新没有对话框,使用图形API.下面的代码是授权代码(它位于fbook开发站点本身),它一直对我很好,直到最近.现在我的应用程序在我的模拟器上正常登录,但当我导出APK文件并将其放在我的手机上时,它会给我"身份验证错误".有人可以解释一下吗?它只是不再向我显示登录页面,在我创建之后一个新的密钥库和hashkey并像往常一样在facebook上的我的开发应用页面上更新了这个hashkey.
我认为这是由于keyhash等,但我不明白这一点,以找出错误.我做的是,我点击导出,应用程序,然后我创建一个新的密钥库(第一次,否则我使用现有的密钥库),然后我发现我的哈希键使用"keytool exportcert"等在fbook开发站点上显示.然后我在我的Facebook帐户中输入该哈希键到应用程序中.但有时即使密钥库密码是正确的,它说"密钥库格式"也不同,即使我在同一个应用程序之前使用它!然后我必须创建一个新的密钥库,再次exportcert,这一切都很痛苦!必须有一个更简单的方法吗?
有人可以解释Facebook应用程序的哈希键是如何工作的吗?
提前致谢!
我的验证码:
public void login()
{
facebook.authorize(this,new String[] { "email", "read_stream", "publish_stream"}, new DialogListener(){
int fbcheck=0;
@Override
public void onComplete(Bundle values) {
fbcheck=1;
facebookauthcheck(fbcheck);
}
@Override
public void onFacebookError(FacebookError error) {
fbcheck=0;
facebookauthcheck(fbcheck);
}
@Override
public void onError(DialogError e) {
fbcheck=0;
facebookauthcheck(fbcheck);
}
@Override
public void onCancel() {
fbcheck=2;
facebookauthcheck(fbcheck);
}
});
}
public void facebookauthcheck(int fbcheck)
{
if (fbcheck == 0) {
Toast.makeText(this, "Authentication Error", Toast.LENGTH_LONG).show();
}
else if (fbcheck==1)
{
Toast.makeText(this, "Authenticated", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(this, "Authentication Cancelled", Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
是的,我有这个问题,
它在模拟器上运行良好,在我的开发手机上运行良好,但在测试用户手机上运行失败。
这与 Facebook 应用程序和 SSO 有关。
读一读:http : //sean.lyn.ch/2011/07/android-the-facebook-sdk-sso-and-you/
它有3个解决方案。
我无法让 SSO 工作,所以我选择了选项二,(选择退出 SSO!)这是通过以下方式完成的:
facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, this);
Run Code Online (Sandbox Code Playgroud)
如果您想修复它并使 SSO 工作:
正确生成调试 apk 证书的哈希密钥。(在上面的链接中有详细说明)。
参考:
| 归档时间: |
|
| 查看次数: |
3839 次 |
| 最近记录: |