gpt4 book ai didi

java - 将 CalendarEvent 插入到 "primary"以外的其他日历

转载 作者:行者123 更新时间:2023-11-30 09:28:32 26 4
gpt4 key购买 nike

如何将 CalendarEvent 插入到由其 Id 给定的特定日历?

在我的应用程序中,我正在扫描所有日历并将它们添加到 ArrayList,如下所示:

for (CalendarListEntry calendarEntry : this.calendars.getItems()) {
this.calendarIDs.add(calendarEntry.getId());
}

我找到的唯一代码片段是:

Event createdEvent = service.events().insert("primary", event).execute();

我尝试使用 feed url 而不是“private”,比如

http://www.google.com/calendar/feeds/<id_here>%40group.calendar.google.com/private/full

但后来我得到了一个

com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found
{
"code" : 404,
"errors" : [ {
"domain" : "global",
"message" : "Not Found",
"reason" : "notFound"
}],
"message" : "Not Found"
}

最佳答案

试试这些代码片段:

片段 1:

public void authenticate(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

List <String> scopes = new LinkedList<String>();
scopes.add(scope);
AuthorizationCodeRequestUrl authorize = new GoogleAuthorizationCodeRequestUrl(client_id, redirect_uri, scopes);
authorize.setRedirectUri(redirect_uri);
String authorize_url = authorize.build();
log.info(authorize_url);
response.sendRedirect(authorize_url);
}

片段一负责 OAuth 并将程序重定向到重定向 uri。变量 scope、client_id、cliend_secret 和 scope 的值来自 Google api 控制台。

片段 2:

public void importCalendarList(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String code = request.getParameter("code");
HttpTransport transport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();

GoogleTokenResponse res = new GoogleAuthorizationCodeTokenRequest(transport, jsonFactory, client_id, client_secret, code, redirect_uri).execute();
]String accessToken = res.getAccessToken();
Calendar.Builder builder = new Calendar.Builder(transport, jsonFactory, null);
builder.setCalendarRequestInitializer(new CalendarRequestInitializer(accessToken));
Calendar calendarService = builder.build();
Calendar.CalendarList.List list = calendarService.calendarList().list();
list.setOauthToken(accessToken);
List <CalendarListEntry>list1=list.execute().getItems();
String id = list1.get(0).getId();
p.write(id);

for(CalendarListEntry temp:list1) {
p.println(temp.getSummary());
temp.getId();
}

Event e = new Event();

e.setSummary("Test event");
e.setLocation("Adaptavant");

Date startDate = new Date();
Date endDate = new Date(startDate.getTime() + 3600000);
DateTime start = new DateTime(startDate, TimeZone.getTimeZone("UTC"));
e.setStart(new EventDateTime().setDateTime(start));
DateTime end = new DateTime(endDate, TimeZone.getTimeZone("UTC"));
e.setEnd(new EventDateTime().setDateTime(end));
Event insertedEvent = calendarService.events().insert(id, e).setOauthToken(accessToken).execute();

p.println(insertedEvent.getId());

代码段二获取日历列表并获取其中一个的 ID,并在该日历中创建一个事件。如果您想将事件添加到主日历,主日历的 ID 是用于登录的 gmail ID。

可在此处找到更多文档:

https://google-api-client-libraries.appspot.com/documentation/calendar/v3/java/latest/index.html

关于java - 将 CalendarEvent 插入到 "primary"以外的其他日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13986099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com