【问题标题】:Google OAuth 2.0 and debug key for Google Drive APIGoogle OAuth 2.0 和 Google Drive API 的调试密钥
【发布时间】:2015-02-15 22:52:23
【问题描述】:

我在GoogleDriveAPI 控制台中为 Android 应用程序设置了 2 个客户端 ID:第一个用于发布 APK,第二个用于调试。已发布的应用程序一切正常,但我的问题仅与第二个客户端 ID 有关。 我遇到了这个异常:com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException

在以下几行之后:

Drive.Files.List request;
request = service.files().list();
String query = "mimeType='application/vnd.google-apps.folder' AND trashed=false AND title='" + title + "' AND '" + parentId + "' in parents";
request = request.setQ(query);
com.google.api.services.drive.model.FileList files = request.execute(); // <=I'm getting the exception here

我在windows上使用ADT,我从Windows-&gt;Preferences-&gt;Android-&gt;Build获得了调试模式的sha1指纹,但是Google Drive API授权失败!为什么? 我发现的(唯一)解决方案是在调试模式下也使用“发布”客户端 ID,并带有自定义指纹(并且确实有效)。

【问题讨论】:

  • 我在开发者控制台中注册了他们两个。但即使出于其他原因进行调试,我也只使用“发布”。曾经(这可能是 GooPlaySvcs 中的一个临时故障),当我切换到发布时,我无法获得使用调试创建的所有文件/文件夹。那是在早期的 GDAA 时代(2014 年 3 月),所以它现在可以工作了。我建议在您必须将 2K 文件下载并重新上传到手机之前检查它是否工作正常(我必须这样做)。即使在调试时,也有一种方法可以将您的环境设置为生成“发布”SHA1。我会尝试找到它,并会尽快将其 GIST。
  • 谢谢。是的,这就是我所做的,我也在这里找到了它:stackoverflow.com/questions/15754060/…
  • 出于安全原因,最后我从 API 控制台中删除了调试客户端 ID(即使它工作正常)
  • 我通过删除现有应用程序、重新安装最新的 Play 商店应用程序、一遍又一遍地测试旧的 apk 来修复类似的错误,最后现有的开发 apk 再次正常工作,但没有弄清楚确切的原因。跨度>

标签: android google-oauth google-drive-android-api


【解决方案1】:

试试这个: 拿不工作的*.apk文件(DEBUG.apk),我不知道你的IDE是什么,所以我不能告诉你在哪里找到它,但它应该很容易。

  1. 在 7-zip 或类似解压器中打开“*.apk”文件,并在存档中找到“META-INF\CERT.RSA”文件。将其解压缩到您的 ...\desktop\
  2. 运行“keytool -printcert -file ...\desktop\CERT.RSA”。
  3. 您应该会看到相关 APK 文件的 SHA1,并将其与您在控制台中注册的 SHA1 进行比较。还要仔细检查包名称。 PackageName-SHA1 组合是使用 Google Drive 授权应用版本的原因。

我隐约记得在重新安装/升级我的 IDE 或将项目移动到另一台机器(基本上生成的调试 SHA1 与我注册的不同)后发生在我身上。

我知道这是一个很长的镜头,但这是我遇到麻烦时使用的。

【讨论】:

  • 我的 ide 是 adt-bundle-windows-x86_64 中的 eclipse.exe 第 0 步:我删除了自定义调试密钥库,并在 bin 文件夹中找到了 apk。按照您的步骤 1 和 2,在您的步骤 3 中,我看到了 SHA1(不是 RSA1),它等于我在控制台中注册的内容 总之,我输入的 SHA1 调试指纹字段是正确但是我在包名称的另一个字段中拼错了一个字母:-(顺便说一句,荒谬的是,即使我删除了客户端 ID,现在应用程序仍然被授权......我希望这只是一个延迟!我重新插入了它们反正
  • 我修复了答案中的 SHA1 - RSA1 错字,谢谢。顺便说一句,我知道答案的事实表明,你不是唯一遇到这种障碍的人:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多