我可以使用流API从特定帐户获取推文。我还可以设法获取特定#tags的推文,如下所示:
endpoint.trackTerms(Lists.newArrayList("twitterapi", "@myTwitter"));
和
endpoint.trackTerms(Lists.newArrayList("twitterapi", "#yolo"));
我想知道如何合并这两个查询,因为我想从特定用户(@myTwitter)获取特定的推文(#yolo)
代码可以在这里找到 https://github.com/twitter/hbc
答案 0 :(得分:1)
查看Twitter关于流API的文档,如何track terms:
以逗号分隔的短语列表,用于确定内容 推文将在流媒体上发布。短语可以是一个或多个 用空格分隔的术语,如果所有术语都匹配一个短语 在短语中出现在Tweet中,无论顺序如何 无视案例。通过此模型,您可以将逗号视为逻辑OR, 空格等同于逻辑AND(例如'twitter'是 和推特,',推特'是OR推特)。
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")));
当然,您可以创建一种新方法。
希望它有所帮助。