1

GoogleカレンダーAPIで遊んでいます。好奇心から、私は Google ライブラリを使用しなかったので、すべて自分で書くことができます。新しいカレンダーが作れません。この get リクエストが機能しているため、認証が機能しています: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list

私が使用した新しいカレンダーを作成するために: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/insert

私が書いた:

try {           
    DefaultHttpClient httpclient = new DefaultHttpClient();
    httpclient.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS,false);
    HttpPost httppost = new HttpPost("https://www.googleapis.com/calendar/v3/users/me/calendarList");
    httppost.addHeader("Authorization", "Bearer " + token); //authentication
    httppost.addHeader("Host", "googleapis.com");

    StringEntity params = new StringEntity("{\"id\": \"TestSchedule\",\"defaultReminders\":[{\"method\": \"popup\",\"minutes\":10}]}");
    httppost.setEntity(params);

    //EXECUTE REQUEST
    HttpResponse postResponse = httpclient.execute(httppost);

    //RESPONSE
    HttpEntity entity = postResponse.getEntity();
    InputStream stream = entity.getContent();
    BufferedReader br = new BufferedReader(new InputStreamReader(stream,"UTF-8"));
    String line;
    while ((line = br.readLine()) != null) {
         System.out.println(line);
    }
    httppost.releaseConnection();

} catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

さらに、正しいトークンを取得する範囲は次のとおりです。https://www.googleapis.com/auth/calendar これは正しいはずです。問題は投稿リクエストの本文にあると思いますか?

したがって、get リクエストが機能しているので、認証手順が正しいと仮定し、正しいトークンを取得します。get リクエストの結果の代わりにこの post リクエストを実行すると、302 レスポンス コードになります。取得した新しい URL は Google のメイン ページです。参照ページによると、カレンダー リソースを取得する必要があります。

4

1 に答える 1