资源未找到userKey使用服务帐户的Google Directory API

时间:2014-10-22 21:46:29

标签: google-admin-sdk google-directory-api

以下是使用服务帐户构建的凭据

GoogleCredential credential = new GoogleCredential.Builder()
             .setJsonFactory(jsonFactory).setTransport(httpTransport)

     .setServiceAccountId("xxxxxxx@developer.gserviceaccount.com")
     .setServiceAccountPrivateKeyFromP12File(new File("key.p12"))

     .setServiceAccountScopes(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER))

     .build();

我正在尝试的是获取用户,其中User是com.google.api.services.admin.directory.model.User

User u = null;
try {
    u = service.users().get("test@gmail.com").execute();
} catch (Exception e) {

    e.printStackTrace();
}

    return u.toPrettyString();
}

响应返回代码404资源未找到?是否需要创建用户?如何访问任何Gmail用户?

1 个答案:

答案 0 :(得分:2)

假设您已经授予了服务帐户domain-wide delegation,则需要使用.setServiceAccountUser("admin@domain.com")冒充管理员帐户,如service account documentation所示。服务帐户本身不是域管理员,因此他们需要模拟一个帐户才能使用Admin SDK API。