java - Google 日历 API Java 403

标签 java spring-boot google-calendar-api

private final String clientSecret = "<my_client_secret>";
private final String clientID = "<my_client_id>.apps.googleusercontent.com";

JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
//Access token
private Credential credentials = new GoogleCredential.Builder()
        .setTransport(new NetHttpTransport())
        .setJsonFactory(new JacksonFactory())
        .setClientSecrets(clientID, clientSecret)
        .build();

Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
        .setApplicationName("Calendar")
        .build();

public PersonalCalendar() throws GeneralSecurityException, IOException {
}

public void getGoogleCalendarList() throws IOException {

    DateTime now = new DateTime(System.currentTimeMillis());
    Events events = service.events().list("primary").setMaxResults(10)
            .setTimeMin(now)
            .setOrderBy("startTime")
            .setSingleEvents(true)
            .execute();
    List<Event> eventsList = events.getItems();
    if (eventsList.size() == 0) {
        System.out.println("No upcoming events found.");
    } else {
        System.out.println("Upcoming events");
        for (Event event : eventsList) {
            DateTime start = event.getStart().getDateTime();
            if (start == null) {
                start = event.getStart().getDate();
            }
            System.out.printf("%s (%s)\n", event.getSummary(), start);
        }

    }
}

这是我的 Spring 服务器上的 PersonalCalendar.class。我尝试从我的 Google 日历获取我的 Activity 。我已经创建了一个 ServiceAccount 并授予了对我的日历的访问权限。 我的错误消息:

com.google.api.client.googleapis.json.GoogleJsonResponseException:403 禁止 { “代码”:403, “错误”:[ { “域”:“使用限制”, "message": "未经身份验证的使用已超出每日限制。继续使用需要注册。", “原因”:“dailyLimitExceededUnreg”, “扩展帮助”:“https://code.google.com/apis/console” }], "message": "超出未经身份验证使用的每日限制。继续使用需要注册。" }

我也不明白 list("primary") 通过创建我的 Event 对象来做什么。有人可以向我解释一下吗?我需要做什么才能从我的日历中获取我的 Activity ?

最佳答案

看来您没有正确处理身份验证。根据你的判断 代码我猜你读过这个:https://developers.google.com/google-apps/calendar/quickstart/java

我看不到您正在某处读取凭据文件(指南中的client_secret.json)。您可以在 Google 开发者控制台中生成此文件。

I also don't understand what list("primary") does by the creation of my Event object. Can someone please explain this to me?

您不是在此处创建 Activity ,而是从您的服务帐户主日历中列出接下来的 10 个 Activity 。

关于java - Google 日历 API Java 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48079461/

相关文章:

google-calendar-api - 谷歌日历 API 集成

javascript - Google Calendar API 获取事件详细信息

java - Locale对象可以用hibernate存储在数据库中吗

java - 如何通过控制层次结构(来自 C#)自动操作 Java GUI 程序?

java - Jersey 中的 jax-ws 调用

java - 无法转换为org.springframework.security.core.userdetails.UserDetails,根本原因是Java spring-boot security错误

java - 如何停用子模块中的 Maven 配置文件?

java - 使用 servlet 上下文从 Spring Boot 应用程序获取资源的路径

mysql - 使用 MySQL 8 的事务性 Spring Boot 测试回滚事务,但无论如何都会插入行

google-calendar-api - 如何设置谷歌日历API的时区?