Twitter4jを書き換えて公式クライアント用の検索apiを使う方法
もちろんapiトークンはそれ用のが必要。その上でTwitter4jの一部ファイルを書き換える。twitter4j.TwitterImpl.search(Query)メソッドと似たような感じで twitter4j.TwitterImpl.searchUniversal(Query)を追加する
public interface SearchResource {
/**
* Returns tweets that match a specified query.
* <br>This method calls http://search.twitter.com/search.json
*
* @param query - the search condition
* @return the result
* @throws TwitterException when Twitter service or network is unavailable
* @see <a href="https://dev.twitter.com/docs/api/1.1/get/search">GET search | Twitter Developers</a>
* @see <a href="http://search.twitter.com/operators">Twitter API / Search Operators</a>
* @since Twitter4J 1.1.7
*/
QueryResult search(Query query) throws TwitterException;
QueryResult searchUniversal(Query query) throws TwitterException;
}
/* Search Resources */
@Override
public QueryResult search(Query query) throws TwitterException {
if (query.nextPage() != null) {
return factory.createQueryResult(get(conf.getRestBaseURL()
+ "search/tweets.json" + query.nextPage()), query);
} else {
return factory.createQueryResult(get(conf.getRestBaseURL()
+ "search/tweets.json", query.asHttpParameterArray()), query);
}
}
@Override
public QueryResult searchUniversal(Query query) throws TwitterException {
if (query.nextPage() != null) {
return factory.createQueryResult(get(conf.getRestBaseURL()
+ "search/universal.json" + query.nextPage()), query);
} else {
return factory.createQueryResult(get(conf.getRestBaseURL()
+ "search/universal.json", query.asHttpParameterArray()), query);
}
}
/* Direct Messages Resources */
GitHub - Twitter4J開発手順メモ(私家版の作り方) - Qiitaを参考にビルドをする mvn clean install -Dmaven.test.skip=trueとすると。確かにテストでエラー出まくったなあ
2016/01/17 11:15時点の4.0.5-SNAPSHOTと、4.0.4のjar一覧を置いておく。 オリジナル:yusuke/twitter4j 4.0.5-SNAPSHOT MD5: B7A49EF1ED800D64C9675E61917DABDB 4.0.4 MD5: 748B927000A2FC6DA5B09E1F0F153217
2016/11/13時点の4.0.5版をそのままコンパイル&上記の検索api改造してコンパイルしたファイルをアップ。
オリジナル MD5:AB6E1F31AB05B38B791ABF2E381675D3
改造版 MD5:E47F25ECB892B7CC03EE19BE63655CBA