我有一些代码可以检索,删除和更新,以及创建Google用户。我可以使用以下方法创建用户:
public void createUser(String id, String firstName, String lastName, String email, String password){
User user = new User();
try{
UserName name = new UserName();
name.setFamilyName(lastName);
name.setGivenName(firstName);
user.setName(name);
user.setPassword(password);
user.setPrimaryEmail(email);
user.setId(id);
System.out.println(service.users().insert(user).execute());
}
catch(Exception e){
System.out.println("Error creating user: " + e);
}
我还可以使用以下方法检索userKey:
System.out.println("UserKey: " + service.users().get(id).getUserKey());
但是当我尝试更新或删除具有id的用户时,我收到以下错误:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found
{
"code" : 404,
"errors" : [ {
"domain" : "global",
"message" : "Resource Not Found: userKey",
"reason" : "notFound"
} ],
"message" : "Resource Not Found: userKey"
}
我的删除方法如下:
public void deleteUser(String id){
try{
System.out.println(service.users().delete(id).execute());
}
catch(Exception e){
System.out.println("Error deleting user: " + e);
}
}
如果我将删除或更新方法传递给电子邮件地址(id@domain.edu),它会找到该帐户并正常工作,但我需要能够在insert方法中仅传递我创建帐户的ID 。有什么想法吗?
答案 0 :(得分:3)
调用Directory API时,您必须始终指定用户的完整电子邮件地址或用户的Google唯一ID。仅提供用户名的本地部分是不够的,因为这不允许Google确定用户与哪个Google Apps域相关联。