0

ストリーミング API を使用して、特定のアカウントからツイートを取得できます。以下のように、特定の #tags のツイートを取得することもできます。

endpoint.trackTerms(Lists.newArrayList("twitterapi", "@myTwitter"));

endpoint.trackTerms(Lists.newArrayList("twitterapi", "#yolo"));

特定のユーザー (@myTwitter) から特定のツイート (#yolo) を取得したいので、これら 2 つのクエリをマージする方法を考えています。

コードはここにあり ます https://github.com/twitter/hbc

4

1 に答える 1

1

ストリーミング API に関する Twitter のドキュメント、用語の追跡方法をご覧ください。

ストリームで配信されるツイートを決定するために使用されるフレーズのカンマ区切りリスト。フレーズは、スペースで区切られた 1 つ以上の用語である場合があり、フレーズ内のすべての用語がツイート内に存在する場合、順序に関係なく大文字と小文字を区別せずにフレーズが一致します。このモデルでは、コンマは論理 OR と考えることができ、スペースは論理 AND と同等です (たとえば、「the twitter」は AND twitter、「the,twitter」は OR twitter)。

twitter-hbcカンマで区切られた用語のみを追跡できるため、これを行うと、

endpoint.trackTerms(Lists.newArrayList("@myTwitter", "#yolo"));

実際にやって@myTwitter OR #yoloいるメソッドの実装を見てtrackTerms

/**
  * @param terms a list of Strings to track. These strings should NOT be url-encoded.
  */
public StatusesFilterEndpoint trackTerms(List<String> terms) {
    addPostParameter(Constants.TRACK_PARAM, Joiner.on(',').join(terms));
    return this;
}

を使用する代わりにtrackTerms、次のように用語をエンドポイントに直接追加できます。

endpoint.addPostParameter(Constants.TRACK_PARAM, Joiner.on(' ').join(Lists.newArrayList("twitterapi", "#yolo")));

もちろん、新しいメソッドを作成することもできます。

それが役に立てば幸い。

于 2016-01-17T10:31:08.720 に答える