我正在尝试将我的Android应用程序的应用程序数据备份到Google云端硬盘。因此,我请求使用google_sign_in包访问https://www.googleapis.com/auth/drive.appdata,https://www.googleapis.com/auth/drive.file范围。
我在Google Developer Console上创建了一个项目,启用了Drive API,并将作用域添加到OAuth同意屏幕,并添加了OAuth客户端ID,以及程序包名称和调试密钥的SHA-1。
如果我不请求任何作用域,则该应用程序运行良好,但是请求“驱动器”作用域会导致同意屏幕被卡住并永久加载。 有什么我想念的吗?
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);
}();
},
),
],
),
),
)
);
}
}