我使用Parse在Android登录时遇到问题。 一切正常,但我总是让用户通过Facebook登录。
我在这里找到了一个有同样问题的人Facebook Login not working properly (Parse),但他的回答对我不起作用。
List<String> permissions = Arrays.asList("email");
ParseFacebookUtils.logIn(permissions, getActivity(), new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
if (user == null) {
Log.d("WelcomeMainFragment",
"Uh oh. The user cancelled the Facebook login.");
} else if (user.isNew()) {
Log.d("WelcomeMainFragment",
"User signed up and logged in through Facebook!");
} else {
Log.d("WelcomeMainFragment",
"User logged in through Facebook!");
}
}
});
user.isNew()
总是返回false!即使我的应用程序中有新的facebook帐户。
我需要使用isNew()方法才能在该代码块中第一次创建解析用户。
非常感谢。
答案 0 :(得分:0)
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
上面做的我得到了错误的密钥哈希。所以我鼓励你用这段代码来解决它:
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) { } catch (NoSuchAlgorithmException e) { }
您必须在调试和生产中执行它才能获得两个密钥。
我希望能帮助别人。