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”)。有人可以向我解释一下吗?我需要做些什么才能从我的日历中获取我的活动?
看起来您没有正确处理身份验证。根据你的代码判断,我猜你读到这个:https://developers.google.com/google-apps/calendar/quickstart/java
我无法看到你正在某处读取你的凭证文件(指南中的client_secret.json
)。您可以在google开发人员控制台中生成此文件。
我也不明白我的Event对象创建了什么列表(“primary”)。有人可以向我解释一下吗?
您没有在此处创建活动,而是列出了服务帐户主日历中的下10个活动。