Google云端硬盘同意屏幕卡住

时间:2019-09-07 07:01:41

标签: android flutter dart google-drive-api google-signin

我正在尝试将我的Android应用程序的应用程序数据备份到Google云端硬盘。因此,我请求使用google_sign_in包访问https://www.googleapis.com/auth/drive.appdatahttps://www.googleapis.com/auth/drive.file范围。

我在Google Developer Console上创建了一个项目,启用了Drive API,并将作用域添加到OAuth同意屏幕,并添加了OAuth客户端ID,以及程序包名称和调试密钥的SHA-1。

如果我不请求任何作用域,则该应用程序运行良好,但是请求“驱动器”作用域会导致同意屏幕被卡住并永久加载。 有什么我想念的吗?

下面是应用程序的代码和卡住的屏幕加载 Consent Screen Loading

import 'package:flutter/material.dart';
import 'package:google_sign_in/google_sign_in.dart';

Future<GoogleSignInAccount> handleSignIn() async {
  try {
    return await GoogleSignIn(
      scopes: [
        'https://www.googleapis.com/auth/drive.appdata',
        'https://www.googleapis.com/auth/drive.file',
      ],
    ).signIn();
  } catch (error) {
    print(error);
    return null;
  }
}

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text(""),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              FlatButton(
                child: const Text("Login with Google"),
                onPressed: () {
                  () async {
                    final signInResult = await handleSignIn();
                    print(signInResult);
                  }();
                },
              ),
            ],
          ),
        ),
      )
    );
  }
}

1 个答案:

答案 0 :(得分:0)

查看评论,似乎代码运行良好,问题是由使用的帐户引起的 - 可能来自帐户上设置的权限。如果您仍有问题,我建议您登录 errors 以了解问题的更多详细信息。