Loading...

blogger API 本日の投稿だけ取得

blogger APIです。

Blogger Data API Developer's Guide

記事の取得に関してのサンプルがほとんどサンプルないような気が...

DateTimeにsetDateOnlyしたほうがよいようです。
もっと他の方法知りたいところです。

みつからないとnullを返すという仕様にしてみました。


/**
* <p>
* 本日、発行されたpostを一件だけ取得します。ですので、目的のものがみつかるという保証はありません。
* </p>
*
* @param myService
* @param blogId
* @return
* @throws ServiceException
* @throws IOException
*/
public static Entry getTodayPublishedPost(GoogleService myService,
String blogId) throws ServiceException, IOException {
DateTime startTime, endTime;
startTime = DateTime.now();
endTime = DateTime.now();

startTime.setDateOnly(true);

URL feedUrl = new URL("http://www.blogger.com/feeds/" + blogId
+ "/posts/default");
Query myQuery = new Query(feedUrl);
myQuery.setPublishedMin(startTime);
myQuery.setPublishedMax(endTime);
Feed resultFeed = myService.query(myQuery, Feed.class);

if (resultFeed.getEntries().size() == 0)
return null;

return resultFeed.getEntries().get(0);
}


追記
本当に正しく動いているかどうか自信がない。
で、下記のコードに変更

/**
* <p>
* 本日、発行されたpostを一件だけ取得します。ですので、目的のものがみつかるという保証はありません。
* </p>
*
* @param myService
* @param blogId
* @return
* @throws ServiceException
* @throws IOException
*/
public static Entry getTodayPublishedPost(GoogleService myService,
String blogId) throws ServiceException, IOException {
DateTime startTime, endTime;

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);

startTime = new DateTime(calendar.getTime());

calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
endTime = new DateTime(calendar.getTime());

URL feedUrl = new URL("http://www.blogger.com/feeds/" + blogId
+ "/posts/default");
Query myQuery = new Query(feedUrl);
myQuery.setPublishedMin(startTime);
myQuery.setPublishedMax(endTime);
Feed resultFeed = myService.query(myQuery, Feed.class);

if (resultFeed.getEntries().size() == 0)
return null;

return resultFeed.getEntries().get(0);
}
リアクション: 
java 9101935805779607359

コメントを投稿

ホーム item

このブログを検索

Random Posts

Popular Posts

Labels

ADS