0

私は何時間もドキュメントを調べてきましたが、それを理解することはできません. 自分のカレンダーへのアクセスのみが必要です。では、どのような手順を踏む必要がありますか? 認証はどのように機能しますか?

ありがとう、ジョー

4

1 に答える 1

0

このコードを使用してカレンダー リストにアクセスしました。つまり、これは作成したカレンダーの詳細を返します。お役に立てば幸いです。OAuth 2.0 ドラフト 12 と Google Calendar 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 は、ユーザーが持っているすべてのカレンダーの名前を一覧表示します。タイプ CalendarListEntry のリストは、カレンダーのオブジェクト表現です。したがって、getter から、たとえば、カレンダーの 1 つの uniqueid またはカレンダーのタイム ゾーンを取得できます。

カレンダーAPIを知るためにこのプログラムを書きました。書き始める前に、Google API コンソールにアクセスして、これらの設定を行いました。

クライアント ID、リダイレクト URI、スコープ、およびクライアント シークレット。これらを設定してプログラムで使用します。これは単にカレンダー リストを表示するだけですが、カレンダーのイベントを取得、追加、更新、削除したり、カレンダー自体でこれらすべての操作を実行したりすることもできます。Google Calendar API の包括的なドキュメントは次の場所にあります。

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

そして最後に 1 つ。私はこれをWebアプリケーションから行いました。お役に立てれば。

于 2013-01-05T11:51:37.530 に答える