我需要通过其API定期调用Bing新闻搜索结果,以检查与给定搜索查询匹配的最新报道。
我只想返回自上次调用API以来新发布的故事。
例如,每小时调用一次API应该限制从最近一小时到现在之间的故事搜索(即,过去一小时内发布的故事)。
以下是Bing新闻搜索API的文档-https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-news-api-v7-reference
它明确了参数“ since”,该参数采用Unix epoch time。我将始终能够以编程方式生成时段开始时的时间。
文档状态:
Bing用于选择趋势主题的Unix纪元时间(Unix时间戳)。 Bing会返回在指定日期和时间(而不是该主题的发布日期)或之后发现的热门主题。
如果我想从6月22日开始返回故事,那么人类格林尼治标准时间的新纪元时间是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
但是,执行该调用时,返回的故事对象的最长前一个“ datePublished”字段为“ 2018-06-20T23:18:00.0000000Z”(即6月20日),显然是两天< em>之前我指定的“自”参数。
很好奇,令人沮丧。当指定为“天”时,替代约束参数“新鲜度”似乎已成功地将搜索时间限制在最近的24小时内。但这还不够精细。 “ Since”不起作用,什么也不做。
“因为”仅用于返回Bing News的“趋势主题”故事列表,而不是返回新闻搜索查询的结果吗?文档语言可能不明确。
如果是这种情况,除了“新鲜”以外,如何限制通过API搜索的开始日期/“开始日期”?
答案 0 :(得分:1)
我认为答案是关于您的问题的
您说:
但是,执行该呼叫时,最长的“ datePublished” 返回的故事对象的字段为“ 2018-06-20T23:18:00.0000000Z” (即6月20日),这显然是“自”参数之前的两天 我指定的。
但就在此之前,您引用了文档中的内容:
Bing用于选择的Unix纪元时间(Unix时间戳) 热门话题。 Bing会返回其在或发现的热门话题 在指定的日期和时间之后,而不是主题的日期之后 已发布。
因此,它可能是在您的since
值之后发现的,您无法与datePublished
字段进行比较