0

我需要通过其 API 定期调用 Bing 新闻搜索结果,检查与给定搜索查询匹配的新故事。

我只想返回自上次调用 API 以来新发布的故事。

例如,每小时调用一次 API 应该限制搜索从过去一小时到现在之间的故事(即过去一小时内发布的故事)。

这是 Bing 新闻搜索 API 的文档 - https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-news-api-v7-reference

它明确了一个参数“since”,它需要 Unix纪元时间。我将始终能够以编程方式生成周期开始的纪元时间。

文档指出:

Bing 用于选择趋势主题的 Unix 纪元时间(Unix 时间戳)。Bing 返回在指定日期和时间或之后发现的热门主题,而不是主题发布日期。

如果我想返回从 6 月 22 日开始的故事,人类 GMT 时间的纪元时间(2018 年 6 月 22 日星期五 12:39:51 PM)是 1529671191。

这应该允许我生成 API 查询 URL https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=%22Cardiff%22&since=1529671191000&count=100&sortBy=Date&textDecorations=true&textFormat=HTML

  • q="卡迪夫"
  • 因为=1529671191000
  • 计数=100(最大)
  • 排序依据=日期
  • 文字装饰=真
  • 文本格式=HTML

但是,当执行该调用时,返回的故事对象的最长“datePublished”字段是“2018-06-20T23:18:00.0000000Z”(即 6 月 20 日),这显然“自从" 我指定的参数。

这太好奇了,也太令人沮丧了。当指定为“Day”时,替代约束参数“freshness”似乎成功地将搜索周期限制为过去 24 小时。但这还不够细化。“因为”不起作用,根本不做任何事情。

“since”是否仅用于返回 Bing 新闻的“热门话题”故事列表,而不是新闻搜索查询的结果?文档语言可能不明确。

如果是这种情况,除了“新鲜度”之外,我如何限制通过 API 进行搜索的开始/“开始”日期?

4

1 回答 1

0

我认为答案就在您的问题上:

你说:

但是,当执行该调用时,返回的故事对象的最长“datePublished” 字段是“2018-06-20T23:18:00.0000000Z”(即 6 月 20 日),这显然比“自从" 我指定的参数。

但就在之前,您从文档中引用了这个:

Bing 用于选择趋势主题的 Unix 纪元时间(Unix 时间戳)。Bing 返回在指定日期和时间或之后发现的热门主题,而不是主题发布日期

所以很可能是在你的since值之后才发现的,你不能和datePublished领域比较

于 2018-06-25T07:59:39.780 回答