2010-01-21

GAE/J で RSS フィードの配信

でフィード配信開始しました。それがこちら。 フィードリーダーに登録しておくと楽しいかも。

RSS フィード発行のためのコードはこんな感じ。いつも載せるコードよりちょっと長いけれど、まあ備忘録として。
  1. Feed feed = new Feed();  
  2. feed.setTitle(TextConstruct.create(TextConstruct.Type.TEXT, "Japanese Bloggers Info"null));  
  3. feed.setSubtitle(TextConstruct.create(TextConstruct.Type.HTML, "日本語の Blogger ブログの更新情報を紹介しています。"null));  
  4. feed.setGenerator("1.0""http://japanese-bloggers.appspot.com/""Japanese Bloggers Info");  
  5. feed.setUpdated(new DateTime(now.getTime(), 540));  
  6. feed.addLink("alternate""text/html""http://japanese-bloggers.appspot.com/");  
  7. feed.addLink("self""application/rss+xml""http://japanese-bloggers.appspot.com/feed");  
  8. feed.getAuthors().add(new Person("Kuribo""http://www.kuribo.info/""kurikuribo@gmail.com"));  
  9.   
  10. ArrayList<Entry> entries = new ArrayList<Entry>();  
  11.   
  12. Entry entry = new Entry();  
  13. entry.setTitle(TextConstruct.create(TextConstruct.Type.TEXT, blogtitle + ": " + posttitle, null));  
  14. entry.setContent(TextConstruct.create(TextConstruct.Type.HTML, summary, null));  
  15. entry.setPublished(DateTime.parseDateTime(postPublished));//postPublished は Blogger のフィードから得た発行日時  
  16. entry.addLink("alternate""text/html", posturl);  
  17. entry.getAuthors().add(new Person(author));  
  18. entries.add(entry);  
  19.   
  20. feed.setEntries(entries);  
  21.   
  22. StringWriter sw = new StringWriter();  
  23. try {  
  24.  feed.generateRss(new XmlWriter(sw), new ExtensionProfile());  
  25. catch (IOException e) {  
  26.  //省略  
  27. }  
  28. String rss = sw.getBuffer().toString();  
ちょっとはまったのが、8 行目と 17 行目の author 項目。Feed.setAuthors(List<Person>) みたいなメソッドがないので焦ったのだけれど、上掲のように get した List(要素なし)に Person を追加するのでいいみたい。

あと 14 行目 content の項目は、アプリケーションでエスケープするので、text でいいやと思って指定してみるとフィードリーダーに本文が表示されず。タイトルは text、内容は html というのがよさそう。
スポンサードリンク:

お願い:
「このエントリ役に立った!」と思ったら、ぜひ フィード 登録をお願いします。 

No comments:

Post a Comment

Comments on Google+:

Zenback - Everyone's Related Posts