Android 授权 google 驱动器 api

Android authorize google drive api

我想要从用户 Google 云端硬盘帐户上传和下载的功能。

上传下载正常,问题是账号授权问题

到目前为止,我一直在使用 android 调试密钥库来构建实际的下载和上传 类,但是当我想切换到我自己的应用程序时,它停止工作了。

我在 Google 驱动器控制台中启用了驱动器 API,并下载了 client_secret.json 文件并将其放在资产文件夹中。不知道怎么授权使用

那么基本上如何授权帐户使用android中的Google驱动器API。请注意,我的 DriveScope 是 DRIVE,表示完全控制给定的 Google 驱动器帐户。

这是我用来访问 google 驱动器文件的代码。我遵循了关于此 link 的教程:https://developers.google.com/drive/web/quickstart/android

googleAccountCredential = GoogleAccountCredential.usingOAuth2(
            getActivity().getApplicationContext(), Arrays.asList(SCOPES))
            .setBackOff(new ExponentialBackOff())
            .setSelectedAccountName(getArguments().getString("account"));

    driveService = new Drive.Builder(
            transport, jsonFactory, googleAccountCredential)
            .setApplicationName("myAPP")
            .build();

很可能只是您的授权项不匹配。对于 Android 应用程序,授权由 2 essential items that must be in order in your developers console 组成(天哪,他们又重新洗牌了!!!)。您不需要 'client_secret.json'。

  1. APIs & auth -> Credentials -> Credentials -> Android client 1 'SHA1' MUST BE IN SYNC with your 'Pakage name'
  2. APIs & auth -> Credentials -> OAuth consent screen 必须 有你的 'Product Name' 和 'Email address'

我猜想通过切换到您的应用程序的 'release' 版本,您正在制作的 'Package name' / 'SHA1' 与开发者控制台不同步(您的 IDE 指向不同的密钥库,因此提取不正确的 SHA1)。

这是我遇到麻烦时使用的 'last ditch' 检查。

  1. 查找无法运行的 APK。在解压缩器 (7-zip) 中打开“*.apk”文件,然后在存档中找到 'META-INF\CERT.RSA' 文件。将其解压缩到您的桌面
  2. 运行 'keytool -printcert -file .\desktop\CERT.RSA'.
  3. 您应该会看到 APK 文件的 'SHA1'。将其与开发控制台中的 'SHA1' 进行比较。还要检查包名称(它在您的清单中)。 'Package Name' / 'SHA1' 对是在 Google 云端硬盘中授权应用程序版本的内容。

祝你好运