Flutter Facebook登录令牌为空

时间:2020-06-05 08:58:40

标签: facebook flutter null token

enter image description here

我按照本教程的每个步骤进行操作,但仍然继续出现此错误,我可能做错了什么?这是我正在使用的代码:

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);
}

}

2 个答案:

答案 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

相关问题