使用客户端登录的Google Admin SDK操作失败,403代码甚至使用Auth Token



我已经下载了Java的admin cmd行示例,它与oAuth配合良好,我能够创建用户和组。我在安全设置中也启用了管理SDK API使用。

但我必须使用旧的ClientLogin机制来创建用户和组。

当请求Authorization Token时,Client Login会返回一个值,我最终会在http请求头中设置该值并调用远程服务。

但我有

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
} 

我使用客户端登录,如下所示。

ClientLogin authenticator = new ClientLogin();
authenticator.authTokenType = "apps";
authenticator.username = "foo@foo.com";
authenticator.password = "bar123#";
authenticator.transport = GoogleNetHttpTransport.newTrustedTransport();
final Response response = authenticator.authenticate();
Directory client = new Directory.Builder(GoogleApacheHttpTransport.newTrustedTransport(), JSON_FACTORY, new HttpRequestInitializer() {
        @Override
        public void initialize(HttpRequest httpRequest) throws IOException {
           httpRequest.getHeaders().setAuthorization(response.getAuthorizationHeaderValue());
        }
}).setApplicationName(APPLICATION_NAME).build();

上面的客户端实例比我用来创建用户或组的要多。

Group group = new Group();
group.setEmail("foo@foo.com");
group.setName("bar group");
group.setDescription("bar group");
client.groups().insert(group).execute();

如果我在控制台上打印响应.getAuthorizationHeaderValue(),我可以看到一个长字符串值。

我使用的是谷歌api服务管理员的directory_v1-rev16-1.16.0-rc版本

如果有人能指出我的错误,我将不胜感激。

新的管理SDK API不支持不推荐使用的ClientLogin。您需要使用OAuth 2.0身份验证。

相关内容

  • 没有找到相关文章

最新更新