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