当前位置: 首页 > 知识库问答 >
问题:

谷歌驱动器同意屏幕卡住

段干玺
2023-03-14

我正在尝试在Google Drive上备份我的android应用程序的应用程序数据。因此,我请求访问https://www.googleapis.com/auth/drive.appdata, https://www.googleapis.com/auth/drive.file使用google_sign_in包的作用域。

我在Google Developer Console上创建了一个项目,启用了Drive API并将范围添加到OAuth同意屏幕,并添加了一个带有包名称和调试密钥SHA-1的OAuth Client ID。

如果我不请求任何作用域,应用程序可以正常工作,但是请求“驱动器”作用域会使同意屏幕卡住并永远加载。我错过了什么吗?

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

商茂勋
2023-03-14

通过查看注释,似乎代码工作正常,问题是由使用的帐户引起的-很可能是帐户上设置的权限。如果您仍然有问题,我建议记录错误以了解问题的更多详细信息。

 类似资料:
  • 我正在尝试通过OAuth访问谷歌驱动器以进行本地开发。我包括以下范围: 最后一个范围是:https://www.googleapis.com/auth/drive.file 但是,当我获取客户端ID并在本地应用程序中使用它时,我只被要求通过google对其进行签名。我没有被要求获得有关驱动器文件访问的任何权限。我通过读取登录后获得的访问令牌进一步检查它。在json格式的详细信息中,范围显示以下内容

  • 我正在从 .NET 网络应用程序授权使用谷歌日历。这是我制作的网址:https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/calendar

  • 当使用OAuth2登录我们的应用时,常规的Google(即。gmail)帐户会出现一次同意屏幕,然后不再提示。当我使用我们基于Google Apps的Google帐户登录时,每次我都会看到同一个屏幕提示“您的域管理员已经批准访问X”。此外——同意屏幕上有我的谷歌头像的巨幅(512x512)图像。 关于为什么这些是不同的,有什么见解吗? 我正在请求以下范围 [“配置文件”、“电子邮件”、] ,并且已

  • 下面是https://github.com/google/google-api-nodejs-client的代码。 一般问题:刷新令牌实际上如何与访问令牌一起工作? 背景:根据我的解释,每个访问令牌都有一个有限的时间跨度(~1小时)。因此,当用户第一次连接到我的服务器(服务器为用户身份验证提供了机制)时,服务器将收到有限生命期访问令牌和一次性刷新令牌。1小时后,访问令牌过期。 谢了!

  • 我试图在我的应用程序中使用Google Fit API,在用户被提示选择Google帐户后,OAuth同意屏幕应该会显示,但是我只得到一个带有不确定加载指示器的空白弹出窗口,除非我取消它,否则该弹出窗口将保持不变。 弹出窗口的图像 不会显示任何错误消息,只有当我取消登录流程时,我才会收到一个错误,即我取消了登录流程。 我尝试了个人项目以及Google的示例项目,其他用户也遇到了同样的问题。 正如我

  • 这是我收到的错误