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'。
- APIs & auth -> Credentials -> Credentials -> Android client 1 'SHA1' MUST BE IN SYNC with your 'Pakage name'
- APIs & auth -> Credentials -> OAuth consent screen 必须 有你的 'Product Name' 和 'Email address'
我猜想通过切换到您的应用程序的 'release' 版本,您正在制作的 'Package name' / 'SHA1' 与开发者控制台不同步(您的 IDE 指向不同的密钥库,因此提取不正确的 SHA1)。
这是我遇到麻烦时使用的 'last ditch' 检查。
- 查找无法运行的 APK。在解压缩器 (7-zip) 中打开“*.apk”文件,然后在存档中找到 'META-INF\CERT.RSA' 文件。将其解压缩到您的桌面
- 运行 'keytool -printcert -file .\desktop\CERT.RSA'.
- 您应该会看到 APK 文件的 'SHA1'。将其与开发控制台中的 'SHA1' 进行比较。还要检查包名称(它在您的清单中)。 'Package Name' / 'SHA1' 对是在 Google 云端硬盘中授权应用程序版本的内容。
祝你好运
我想要从用户 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'。
- APIs & auth -> Credentials -> Credentials -> Android client 1 'SHA1' MUST BE IN SYNC with your 'Pakage name'
- APIs & auth -> Credentials -> OAuth consent screen 必须 有你的 'Product Name' 和 'Email address'
我猜想通过切换到您的应用程序的 'release' 版本,您正在制作的 'Package name' / 'SHA1' 与开发者控制台不同步(您的 IDE 指向不同的密钥库,因此提取不正确的 SHA1)。
这是我遇到麻烦时使用的 'last ditch' 检查。
- 查找无法运行的 APK。在解压缩器 (7-zip) 中打开“*.apk”文件,然后在存档中找到 'META-INF\CERT.RSA' 文件。将其解压缩到您的桌面
- 运行 'keytool -printcert -file .\desktop\CERT.RSA'.
- 您应该会看到 APK 文件的 'SHA1'。将其与开发控制台中的 'SHA1' 进行比较。还要检查包名称(它在您的清单中)。 'Package Name' / 'SHA1' 对是在 Google 云端硬盘中授权应用程序版本的内容。
祝你好运