2012-01-10 10 views
1

パブリックカレンダーRSSフィードのリストにGoogleカレンダーエントリを表示するAndroidアプリケーションを作成しようとしています。カレンダーフィードは公開されていますが、特定のユーザーとは共有されていません。Google API Javaクライアントを使用して公開共有カレンダーRSSフィードをパーズする

Googleのgdataライブラリ(パブリックカレンダーRSSと組み合わせて)を使用してパブリックカレンダーフィードを解析して表示することで、iOS側でやったことがあります。

残念ながら、gdataはAndroidと互換性がありません。 Googleには新しいgoogle-api-java-clientライブラリが用意されていますが、すべてのサンプルコードは、OAuthを通じて認証されたデバイス上のGoogleアカウントと並行して使用されます。

これらの新しいライブラリでパブリックフィードを取得して解析する方法はありますか?デバイスに認証情報を保存する必要はありませんか?あるいは、まったく認証することさえできますか?

答えて

1

解決策が見つかりました。これの良い例は、GoogleのApi Javaクライアントの例での現在のYouTubeの例を参照してください。 (あなたをGoogleUrlクラス(私はCalendarUrlを使用)

  • が フィードのjsonc出力に一致するオブジェクトの作成を拡張

    1. http://code.google.com/p/google-api-java-client/wiki/SampleProgram

      パズルの欠けている部分をに持っていましたフィードURLの末尾に の末尾に& alt = jsoncを追加してjsoncの出力を得ることができます)

    2. 注釈(@Key( "NameOfField"))

      HttpTransport transport = new NetHttpTransport(); 
      final JsonFactory jsonFactory = new JacksonFactory(); 
      HttpRequestFactory factory = transport.createRequestFactory(new HttpRequestInitializer() { 
           @Override 
           public void initialize(HttpRequest request) { 
            // set the parser 
            JsonCParser parser = new JsonCParser(jsonFactory); 
            request.addParser(parser); 
            // set up the Google headers 
            GoogleHeaders headers = new GoogleHeaders(); 
            headers.setApplicationName("Google-CalendarSample/1.0"); 
            headers.gdataVersion = "2"; 
            request.setHeaders(headers); 
           } 
      }); 
      
      CalendarUrl url = new CalendarUrl(YOUR_FEED_URL); 
      
      HttpRequest request = factory.buildGetRequest(url); 
      CalendarFeed feed = request.execute().parseAs(CalendarFeed.class); 
      
      :次のコードは、あなたが必要なすべてを構築し、取得する、ことをやったらjsonc名

    と一致するように、ステップ2