Google Calendar API Java 403

问题描述 投票:0回答:1
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日历中获取我的活动。我已经制作了一个ServiceAccount并可以访问我的日历。我的错误信息:

com.google.api.client.googleapis.json.GoogleJsonResponseException:403 Forbidden {“code”:403,“errors”:[{“domain”:“usageLimits”,“message”:“超出未经身份验证的使用的每日限制。续use需要注册。“,”reason“:”dailyLimitExceededUnreg“,”extendedHelp“:”https://code.google.com/apis/console“}],”message“:”超出未经验证的使用的每日限制。继续使用需要注册。“ }

我也不明白我的Event对象创建了什么列表(“primary”)。有人可以向我解释一下吗?我需要做些什么才能从我的日历中获取我的活动?

java spring-boot google-calendar-api
1个回答
1
投票

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

我无法看到你正在某处读取你的凭证文件(指南中的client_secret.json)。您可以在google开发人员控制台中生成此文件。

我也不明白我的Event对象创建了什么列表(“primary”)。有人可以向我解释一下吗?

您没有在此处创建活动,而是列出了服务帐户主日历中的下10个活动。

© www.soinside.com 2019 - 2024. All rights reserved.