简体   繁体   English

Google Calendar API Java 403

[英]Google Calendar API Java 403

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);
        }

    }
}

This is my PersonalCalendar.class on my Spring server. 这是我的Spring服务器上的PersonalCalendar.class。 I try to obtain my Events from my Google-Calendar. 我尝试从我的Google日历获取我的活动。 I already have made a ServiceAccount and gave access to my Calendar. 我已经建立了一个ServiceAccount并可以访问我的日历。 My Error Message: 我的错误讯息:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden { "code" : 403, "errors" : [ { "domain" : "usageLimits", "message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.", "reason" : "dailyLimitExceededUnreg", "extendedHelp" : " https://code.google.com/apis/console " } ], "message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup." com.google.api.client.googleapis.json.GoogleJsonResponseException:403禁止{“代码”:403,“错误”:[{“域”:“ usageLimits”,“消息”:“对未经身份验证的使用的每日限制已超过。续使用需要注册。“,”原因“:” dailyLimitExceededUnreg“,” extendedHelp“:” https://code.google.com/apis/console “}],”消息“:”未经身份验证的使用的每日限制已超过。继续使用需要注册。” } }

I also don't understand what list("primary") does by the creation of my Event object. 我也无法通过创建Event对象来了解list(“ primary”)的功能。 Can someone please explain this to me? 有人可以向我解释一下吗? And what do i have to do to get my Events from my calendar? 我该怎么做才能从日历中获取事件?

It looks like you are not handling the authentication properly. 看来您未正确处理身份验证。 Judging by your code I would guess that you read this: https://developers.google.com/google-apps/calendar/quickstart/java 根据您的代码判断,我想您会读到以下内容: https : //developers.google.com/google-apps/calendar/quickstart/java

I cannot see that you are reading your credentials file ( client_secret.json in the guide) somewhere. 我看不到您正在某处读取凭证文件(指南中的client_secret.json )。 You can generate this file in the google developer console. 您可以在Google Developer Console中生成此文件。

I also don't understand what list("primary") does by the creation of my Event object. 我也无法通过创建Event对象来了解list(“ primary”)的功能。 Can someone please explain this to me? 有人可以向我解释一下吗?

You are not creating an event here, you are listing the next 10 events from your service accounts primary calendar. 您不是要在此处创建活动,而是要列出服务帐户主日历中的下10个事件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM