java - 使用 Java google apps 目录 API 获取特定电子邮件 ID 的组时出错

标签 java google-apps

我想借助 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);
    }

}

最佳答案

在您的新 GoogleCredential.Builder() 中调用 Builder#setApplicationName

关于java - 使用 Java google apps 目录 API 获取特定电子邮件 ID 的组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19607965/

相关文章:

java - Gradle强制依赖版本?

java - GWT无法实例化接口(interface),但可以实例化抽象类吗?

google-apps - 是/否用户提示继续或停止脚本

html - 从网站中提取数据的 Google App 脚本

java - 如何在 Spring Web Flow 2 中的 View 状态和操作状态之间传递模型数据

java - 哪种类型的 Spring 集成 channel ?

java - Hibernate 生成的 DDL 中的无效语法错误 "type= MyISAM"

google-analytics - 与客户分享 Google Analytics

google-apps-script - 检索 Google Apps 域中使用非管理员帐户的用户列表

google-app-engine - 谷歌应用程序的反向代理?