我按照本教程的每个步骤进行操作,但仍然继续出现此错误,我可能做错了什么?这是我正在使用的代码:
Future<void> logInWithFacebook() async {
final FirebaseAuth _auth = FirebaseAuth.instance;
FacebookLogin facebookLogin = FacebookLogin();
final result = await facebookLogin.logIn(['email']);
final token = result.accessToken.token;
final graphResponse = await http.get(
'https://graph.facebook.com/v2.12/me?fields=name,first_name,last_name,email&access_token=${token}');
print(graphResponse.body);
if (result.status == FacebookLoginStatus.loggedIn){
final credential = FacebookAuthProvider.getCredential(accessToken: token);
_auth.signInWithCredential(credential);
}
}
答案 0 :(得分:0)
尝试这种方式:-
final facebookLogin = FacebookLogin();
final result = await facebookLogin.logIn(['email']);
switch (result.status) {
case FacebookLoginStatus.loggedIn:
final token = result.accessToken.token;
final graphResponse = await http.get(
'https://graph.facebook.com/v2.12/me?fields=name,picture,email&access_token=${token}');
final profile = JSON.jsonDecode(graphResponse.body);
print(profile);
setState(() {
userProfile = profile;
isLoggedIn = true;
});
break;
case FacebookLoginStatus.cancelledByUser:
setState(() => isLoggedIn = false);
break;
case FacebookLoginStatus.error:
setState(() => isLoggedIn = false);
break;
}
答案 1 :(得分:0)
通过进一步的分析和研究,我发现我的问题实际上是Facebook密钥哈希,起初我使用的是从OpenSSL生成的密钥哈希,但是它没有用。我想出的有效解决方案是将SHA1值转换为base64,并使用lucianbase在此链接中提到的生成的哈希值:https://github.com/AntonioCuevaUrraco/nativescript-facebook-login/issues/14