Twitter4jを用いた、Javaのクライアントアプリ(Webアプリ)を作成していますが、
アプリで作成したつぶやきが、同アプリの検索にかからず原因を調べています。
同じ検索条件(文字列)で、公式アプリの検索欄に入れれば取得できますが、
アプリ内で検索すると検索対象となりません。
絶対にHITしないのではなく、”時々Hitしないデータがある”という状況で、
検索ワードがそもそも間違っているということでもなさそうです。
これがTwitter4jの制約なのか、公式APIの制約なのかを知りたい、
可能であれば回避策も知りたいです。
アプリの要件は、
①自分が作成したデータのみを抽出する
②つぶやきを区切り文字で分割して項目ごとのデータとして取得・認識する
③上記を満たすような文字列を生成してつぶやく
以上の3点です。
③に関しては、検索条件を
@tos|コメント|1/23|12:34|00;フラグA|#タグ
のように、パイプラインをセパレータとして、
@tosとハッシュタグ付きの文字列でつぶやきます。
①については上記データを得るために、
#タグ source:アプリ名
を検索ワードとして検索しています。
まったく同じワードで、公式アプリの検索に入れれば狙い通りのデータがHitし、
アプリから実行すると取得できません。(下記抜粋ソース)
Java
1Query query = new Query(); 2 3query.setQuery("#タグ" + " source:アプリ名"); 4query.setCount(100); 5 6QueryResult result = null; 7 8//ページ処理 9do { 10 //検索結果を取得 11 result = twitter.search(query); 12 List<Status> statuses = result.getTweets(); 13 //取得した分だけループ 14 for (Status status : statuses) { 15 //加工処理 16 } 17} while((query = result.nextQuery()) != null);
②の要件のために、セパレータとしてパイプを使ったり、
フラグの値を連続させたりしているため、スパム扱いされたのかと勘ぐっていますが、
該当する禁止ルールが見つけられておらず、推測の域を出ていません。
TwitterのルールやTwitter4jに詳しい方がいらっしゃいましたらお力をお貸しください。
あなたの回答
tips
プレビュー