0

我可以使用流 API 从特定帐户获取推文。我还可以设法获取特定#tags 的推文,如下所示:

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

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

我想知道如何合并这两个查询,因为我想从特定用户 (@myTwitter) 获取特定推文 (#yolo)

代码可以在这里找到 https://github.com/twitter/hbc

4

1 回答 1

1

查看 Twitter 关于流 API 的文档,了解如何跟踪术语

逗号分隔的短语列表,用于确定将在流中传递的推文。一个短语可以是一个或多个用空格分隔的术语,如果该短语中的所有术语都出现在推文中,则该短语将匹配,而不管顺序和忽略大小写。通过这个模型,您可以将逗号视为逻辑 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 回答