首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我要让INVALID_AUDIENCE使用Google?

为什么我要让INVALID_AUDIENCE使用Google?
EN

Stack Overflow用户
提问于 2014-10-14 05:49:14
回答 1查看 1.2K关注 0票数 0

我遵循了谷歌的HelloEndpoints教程,在那里,我用Java和一个安卓客户端实现了后端API,在那里我得到了这个错误。https://cloud.google.com/appengine/docs/java/endpoints/getstarted/clients/android/

我在一个物理设备上部署了Android应用程序客户端。当我启动应用程序并点击“登录”按钮时,会显示一个对话框,因为我在手机上有两个谷歌帐户。我选择一个,然后正确的电子邮件地址会在标签中显示几秒钟,然后消失。那么我就会得到身份验证错误。

Stackoverflow和其他站点上提到了几种建议的解决方案,但我迄今尝试过的都没有起到任何作用。

我试图:

  • 重新生成客户端id,它们在客户端和服务器端(web客户端id)都是相同的。
  • android在SHA1末尾有正确的包名。
  • 重新生成客户端库
  • 更新devserver (但API也已部署)
  • 关闭控制台中的web服务
  • 我在API控制台的所谓同意屏幕上设置了一个项目名称和电子邮件。
  • 选中后,我将使用生成SHA1时使用的相同的SHA1对应用程序进行签名。它是在我构建版本时使用的。

你好,雷蒙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-21 10:40:42

我昨天终于解决了这个问题:)

在控制台上,我意识到我有一个用于公共API访问的Android密钥,但没有用于OAuth的Android。我为OAuth拥有的唯一客户端ID是web应用程序。

在我为Android应用程序创建了一个之后,身份验证异常就消失了。

此后,当我试图调用需要身份验证的方法时,我得到了另一个异常。当我在Google控制台上查看日志时,调用甚至没有被记录!这让我觉得调用这个方法是不正确的。

当我试图从网络上调用该方法时,它起了作用。然后我检查了我的终端,在那里我看到了example@example.com的邮件地址。因此,Android客户机的调用被发送到我的本地devserver,即使我已经部署了web服务(并且服务器ip地址没有在Android代码中设置)。我的下一步是关闭本地devserver,然后在再次测试Android客户机之前重新部署后端API。

最后,在这两个更改之后,我可以调用已验证的方法并获得正确的响应:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26353467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档