RSS フィード発行のためのコードはこんな感じ。いつも載せるコードよりちょっと長いけれど、まあ備忘録として。
Feed feed = new Feed(); feed.setTitle(TextConstruct.create(TextConstruct.Type.TEXT, "Japanese Bloggers Info", null)); feed.setSubtitle(TextConstruct.create(TextConstruct.Type.HTML, "日本語の Blogger ブログの更新情報を紹介しています。", null)); feed.setGenerator("1.0", "http://japanese-bloggers.appspot.com/", "Japanese Bloggers Info"); feed.setUpdated(new DateTime(now.getTime(), 540)); feed.addLink("alternate", "text/html", "http://japanese-bloggers.appspot.com/"); feed.addLink("self", "application/rss+xml", "http://japanese-bloggers.appspot.com/feed"); feed.getAuthors().add(new Person("Kuribo", "http://www.kuribo.info/", "kurikuribo@gmail.com")); ArrayList<Entry> entries = new ArrayList<Entry>(); Entry entry = new Entry(); entry.setTitle(TextConstruct.create(TextConstruct.Type.TEXT, blogtitle + ": " + posttitle, null)); entry.setContent(TextConstruct.create(TextConstruct.Type.HTML, summary, null)); entry.setPublished(DateTime.parseDateTime(postPublished));//postPublished は Blogger のフィードから得た発行日時 entry.addLink("alternate", "text/html", posturl); entry.getAuthors().add(new Person(author)); entries.add(entry); feed.setEntries(entries); StringWriter sw = new StringWriter(); try { feed.generateRss(new XmlWriter(sw), new ExtensionProfile()); } catch (IOException e) { //省略 } 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