Google 日历 API:以 JSON 形式获取事件



我已经浏览了几个小时的文档,但我就是想不通。我只需要访问自己的日历。那么我必须采取哪些步骤呢?身份验证如何工作?

谢谢乔

我使用此代码访问日历列表,即返回我创建的日历的详细信息。我希望它有所帮助。我正在使用OAuth 2.0草案12和谷歌日历API v3

    @RequestMapping(value="/authenticate.do" , method={ RequestMethod.GET , RequestMethod.POST })
    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 身份验证,并将用户定向到他们允许或拒绝的屏幕。如果允许,它们将被重定向到此功能。

@RequestMapping(value="/importCalendar.do", method={ RequestMethod.GET , RequestMethod.POST })
public void importCalendarList(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    PrintWriter p = response.getWriter();
    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();
    } 
}

此函数 importCalendarList 列出用户拥有的所有日历的名称。日历列表条目类型的列表是日历的对象表示形式。因此,例如,您可以从getter中获得其中一个日历的唯一ID或日历的时区。

我写这个程序是为了了解日历api。在我开始写作之前,我去了谷歌api控制台来设置这些东西。

客户端 ID、重定向 URI、范围和客户端密码。设置这些并在程序中使用它们。这仅显示日历列表,但是您也可以从日历中获取,添加,更新和删除事件,或者在日历本身上执行所有这些操作。有关 Google 日历 API 的综合文档,请点击此处:

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

还有最后一点。我从一个 Web 应用程序完成了此操作。希望这有帮助。

相关内容

  • 没有找到相关文章

最新更新