Java GoogleAuthUtil/GoogleAccountCredential 1.17.0-rc SDK 1.8.8 API 19在android中不适用于google端点
测试: 服务器: 探索者: 源代码: 使用Java GoogleAuthUtil/GoogleAccountCredential 1.17.0-rc SDK 1.8.8 API 19在android中不适用于google端点,java,android,google-app-engine,google-cloud-endpoints,Java,Android,Google App Engine,Google Cloud Endpoints,测试: 服务器: 探索者: 源代码: 使用GoogleAuthUtil.getToken()中的令牌时,只有第三个curl命令不起作用。 请注意,web客户端和api资源管理器工作正常,只有android不向端点服务器进行身份验证 编辑1: 为什么GoogleAuthUtil.getToken()生成的令牌在curl测试1和2中工作,而不是在3中工作?如果我在所有3项工作中使用web客户端生成的令牌 当我尝试credential.setSelectedAccountName(emailAccou
GoogleAuthUtil.getToken()
中的令牌时,只有第三个curl命令不起作用。
请注意,web客户端和api资源管理器工作正常,只有android不向端点服务器进行身份验证
编辑1:
为什么GoogleAuthUtil.getToken()
生成的令牌在curl测试1和2中工作,而不是在3中工作?如果我在所有3项工作中使用web客户端生成的令牌
当我尝试credential.setSelectedAccountName(emailAccount)时代码>它也没有给我服务器上的用户
编辑2:
我在服务器日志中看到了这一点
#!/bin/bash
curl -s -X GET "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=$1"
curl -s -X GET "https://www.googleapis.com/oauth2/v2/userinfo?access_token=$1"
curl -s -v -X POST "https://gcl-11.appspot.com/_ah/api/rest1/0/greetings/authed" \
-H "Authorization: Bearer $1" \
-H "Content-Type: application/json; charset=UTF-8" \
-d ""
但是代币应该被允许吗?(见下面的链接)
编辑3:
原来我的pom决定不编译我的更改并上传了旧类。。。现在可以使用。您在授权
标题中提供的令牌是为特定的客户ID制作的,这正是您所需要的
这是获取有效凭据对象所需的代码段:
com.google.api.server.spi.WebApisUserService isClientIdAllowed: ClientId in token was not allowed: 522156758812-speqt3cnr7ggje0r3hhjtjg14iigru1f.apps.googleusercontent.com`
它做出了一系列假设:
- 您正在从名为
MainActivity
的类调用。如有必要,将其更换
- 您有一个名为
AppConstants
的类,该类具有访问群体
属性<代码>访问群体
应设置为web客户端ID的值
emailAccount
是设备上配置的Google帐户的有效电子邮件地址setOauthToken
)。然后你可以打电话:
GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(
MainActivity.this, AppConstants.AUDIENCE);
credential.setSelectedAccountName(emailAccount);
你能告诉我如何创建一个正确的android令牌吗?尝试了credential和getToken,但它们没有在服务器上为我提供用户对象。更新问题:服务器正在忽略我的id?
service.greetings().authed().execute()