使用Java中的Google Admin SDK Directory API为域创建Gmail帐户

如何使用Google Admin SDK Directory API在Java中为域创建Gmail帐户? 某处有例子吗? 有关此问题,Google文档很糟糕。

马科斯

这是一个基本示例,说明如何使用Admin SDK的目录API创建用户( https://developers.google.com/admin-sdk/directory/v1/reference/users/insert )。 我没有包含OAuth 2初始化代码,因为这是相当标准的,与其他Google API类似。 您需要使用OAuth凭据初始化Directory实例,这取决于您使用的应用程序类型(独立应用程序或App Engine),请查看此处( https://code.google.com/p/google-api -java-client / source / browse /?repo = samples )其他API的示例包括App Engine和独立应用程序。 在这种情况下,OAuth凭证初始化应该非常相似。

您需要从此处下载最新的Admin SDK jar( https://developers.google.com/api-client-library/java/apis/admin/directory_v1 )或包含以下maven依赖项

 com.google.apis google-api-services-admin directory_v1-rev32-1.16.0-rc  

这是Java示例

 import java.io.IOException; import java.security.GeneralSecurityException; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.services.admin.directory.Directory; import com.google.api.services.admin.directory.model.User; import com.google.api.services.admin.directory.model.UserName; public class DirectoryUtils { /** Global instance of the JSON factory. */ private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); /** Global instance of the HTTP transport. */ private static HttpTransport httpTransport; public static Directory initDirectory() throws GeneralSecurityException, IOException { httpTransport = GoogleNetHttpTransport.newTrustedTransport(); Credential credential = null; // TODO initialize credentials Directory directory = new Directory.Builder(httpTransport, JSON_FACTORY, credential) .setApplicationName("My App Name") .build(); return directory; } public static User createUser(Directory directory) throws IOException { User user = new User(); // populate are the required fields only UserName name = new UserName(); name.setFamilyName("Blogs"); name.setGivenName("Jo"); user.setName(name); user.setPassword("password101"); user.setPrimaryEmail("jo.blogs@example.com"); // requires DirectoryScopes.ADMIN_DIRECTORY_USER scope user = directory.users().insert(user).execute(); return user; } } 

重要

您需要确保OAuth令牌是由具有域访问权限的人员获取的,并且可以从管理面板创建域用户。 您还需要确保您的客户端ID可以访问以下范围( https://www.googleapis.com/auth/admin.directory.user )。 要添加此导航到管理面板→更多控制→安全性→高级设置→管理OAuth客户端访问,然后输入您的客户端ID和上述范围