我想借助 Java Google Apps Directory API 在 Google Apps 中获取特定电子邮件 ID 的组,但出现错误。
有人可以帮助解释错误是什么以及我的代码中可能导致的错误吗?错误和相关代码如下。
错误:
WARNING: Application name is not set. Call Builder#setApplicationName.
Exception in thread "main" com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
"error" : "invalid_grant"
}
import java.util.ArrayList;
import java.util.Collection;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.admin.directory.Directory;
import com.google.api.services.admin.directory.model.Group;
import com.google.api.services.bigquery.Bigquery;
public class Test {
private static Bigquery bigquery;
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
Collection<String> SCOPES = new ArrayList<String>();
SCOPES.add("https://www.googleapis.com/auth/admin.directory.group");
SCOPES.add("https://www.googleapis.com/auth/admin.directory.user");
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("244204474315-l08ah6g350oofeosi7p8pqmotlrmgion.apps.googleusercontent.com")
.setServiceAccountUser("244204474315-l08ah6g350oofeosi7p8pqmotlrmgion@developer.gserviceaccount.com")
.setServiceAccountScopes(SCOPES)
.setServiceAccountPrivateKeyFromP12File(
new java.io.File("C:\\Users\\nbaser\\Desktop\\76ba0ac39b06e8419bbb670734f3b2affeec43b2-privatekey.p12"))
.build();
Directory directory = new Directory.Builder(httpTransport, jsonFactory, credential).build();
// Directory.Users.List list = directory.users().list();
// list.setDomain("yourDomain.com");
// Users users = list.execute();
//Directory.Users.Get user = directory.users().get("nishant.baser@ahold.com");
//user.get
Directory.Groups.Get group = directory.groups().get("ausa.googleams.group@ahold.com");
Group groups = group.execute();
// Directory.Members.List list = directory.members().list("ausa.googleams.group@ahold.com");
// Members members = list.execute();
// System.out.println(members);
}
}