8

是否可以获得包含照片的推文?我目前正在使用twitter 搜索 api,并通过设置 include_entities=true 来获取所有具有实体详细信息的推文。我在媒体对象下看到图片详细信息,但无论如何都可以过滤和获取只有这些媒体项目的推文对象。还是在 Twitter4j 中无论如何都可以执行此查询?

4

4 回答 4

16

没有具体方法可以指定我只需要照片或视频,但您可以根据filter:linksfilter:imagesfilter:videos在您的查询中过滤结果以及include_entities=true.

例如:要获取包含链接的推文2012-01-31,您查询应该具有include_entities参数以及filter:links如下所示:

https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Alinks&include_entities=true"

由于您需要根据图像/照片过滤您的推文,我认为您应该使用filter:images.

您的案例示例如下:

https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Aimages&include_entities=true"

希望这可以帮助。

于 2012-12-17T19:51:49.570 回答
2

使用最新的 twitter API,我无法使用过滤器,也无法在他们的文档中找到任何解释。尽管您可以获取所有推文,然后仅解析媒体推文。如果在您的解析脚本中,您可以触发它:

if(this.entities.media != null){
  //Parse the tweet
}

这不是最好的解决方案,但最糟糕的部分是 twitter,它为您提供更多信息并使用更多自己的资源。

于 2015-04-06T17:33:31.730 回答
0

在最新的 Twitter API 中,您可以在 ConfigurationBuilder 实例中执行此操作,然后再创建 Twitter 实例:

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(false);
cb.setOAuthConsumerKey(API_KEY);
cb.setOAuthConsumerSecret(API_SECRET);
cb.setOAuthAccessToken(ACCESS_TOKEN);
cb.setOAuthAccessTokenSecret(SECRET_KEY);
// enabling include_entities parameters
cb.setIncludeEntitiesEnabled(true);
Twitter twitterInstance = new TwitterFactory(cb.build()).getInstance();

此外,启用实体后,在搜索字符串中您必须具有条件“过滤器:图像”。

List<String> keywords = new ArrayList<String>();
keywords.add("#pet");
keywords.add("cat");
// String.join for Java 8
String twitterSearchString = "((" + String.join(" OR ", keywords) + ")";
// adding the filter condition
twitterSearchString  += " AND filter:images)";
Query q = new Query(twitterSearchString);

你会得到图像的结果(用 twitter4j-core 4.0.4 测试)。

于 2016-02-03T09:47:42.073 回答
0

对于 twitter API 中的过滤器,您可以查看截至 2019 年 4 月 2 日的最新版本的官方文档

https://developer.twitter.com/en/docs/tweets/search/guides/standard-operators.html

于 2019-04-02T11:38:00.867 回答