尝试获取范围 com.google.api.server.spi.config.scope.SingleAuthScopeExpression 的客户端 ID 但失败
Tried and failed to get client id for scope com.google.api.server.spi.config.scope.SingleAuthScopeExpression
在 Google Cloud Endpoints migration timetable, where steps to migrate from other authentication services are described, is written that https://www.googleapis.com/auth/userinfo.email 范围内 弃用 并迁移到 email范围应该被考虑(类比从userinfo.profile范围到profile范围)。
在 Java class Constants 中为我的 @Api服务classes,我改了
public static final String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
至
public static final String EMAIL_SCOPE = "email";
同样在 JavaScript example form google 的客户端,我将 scopes 变量更改为
var scopes = 'email';
并且在 Google Developers Console 日志中我遇到以下异常:
com.google.api.server.spi.auth.AppEngineAuthUtils getCurrentUser:
getCurrentUser: AccessToken; Tried and failed to get client id for scope 'com.google.api.server.spi.config.scope.SingleAuthScopeExpression@ed8e89a9'
com.google.appengine.api.oauth.InvalidOAuthParametersException:
at com.google.appengine.api.oauth.OAuthServiceImpl.makeSyncCall(OAuthServiceImpl.java:139)
在我的端点方法中
@ApiMethod(name = "authorize", httpMethod="get")
public AppUser authorize(User user) throws NonAuthorizedException {
...
}
在 User user 参数中,引擎插入了一个 null(当然是我授权的)。
即使我将范围更改为 profile,这也不起作用。它只适用于 localhost,但我认为,这不是问题。
有人会问,那为什么就让它变成userinfo.email?我一直在寻找其他一些范围,因为偶尔对于某些特定的 google 用户(我不知道他们的具体情况),userinfo.email 不会要么工作。
有人可以帮我吗?谢谢。
您不需要更新范围。即使范围已弃用,它也不会被删除。
在 Google Cloud Endpoints migration timetable, where steps to migrate from other authentication services are described, is written that https://www.googleapis.com/auth/userinfo.email 范围内 弃用 并迁移到 email范围应该被考虑(类比从userinfo.profile范围到profile范围)。
在 Java class Constants 中为我的 @Api服务classes,我改了
public static final String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
至
public static final String EMAIL_SCOPE = "email";
同样在 JavaScript example form google 的客户端,我将 scopes 变量更改为
var scopes = 'email';
并且在 Google Developers Console 日志中我遇到以下异常:
com.google.api.server.spi.auth.AppEngineAuthUtils getCurrentUser:
getCurrentUser: AccessToken; Tried and failed to get client id for scope 'com.google.api.server.spi.config.scope.SingleAuthScopeExpression@ed8e89a9'
com.google.appengine.api.oauth.InvalidOAuthParametersException:
at com.google.appengine.api.oauth.OAuthServiceImpl.makeSyncCall(OAuthServiceImpl.java:139)
在我的端点方法中
@ApiMethod(name = "authorize", httpMethod="get")
public AppUser authorize(User user) throws NonAuthorizedException {
...
}
在 User user 参数中,引擎插入了一个 null(当然是我授权的)。
即使我将范围更改为 profile,这也不起作用。它只适用于 localhost,但我认为,这不是问题。
有人会问,那为什么就让它变成userinfo.email?我一直在寻找其他一些范围,因为偶尔对于某些特定的 google 用户(我不知道他们的具体情况),userinfo.email 不会要么工作。 有人可以帮我吗?谢谢。
您不需要更新范围。即使范围已弃用,它也不会被删除。