我可以使用下面的 curl 命令检索给定日期范围内所有答案的列表:
curl "https://api.stackexchange.com/2.2/users/10348758/answers?page=1&pagesize=100&fromdate=1588291200&todate=1592179200&order=desc&sort=activity&site=stackoverflow&access_token=my-access-token&key=my-key" | gunzip
我需要找到给定日期范围内未接受的答案列表。
根据文档,这些字段可以应用于答案类型。
在文档中,写道:
只能查询已投票、已投票和已接受字段 具有private_info范围的access_token。
因此,我还创建了范围private_info
access_token
。
我通过以下方式修改了我的命令:
curl "https://api.stackexchange.com/2.2/users/10348758/answers?is_accepted=false?page=1&pagesize=100&fromdate=1588291200&todate=1592179200&order=desc&sort=activity&site=stackoverflow" | gunzip
在上面的命令中,我添加了is_accepted=false
参数,但我得到的结果与上面的命令相同,即我得到了一个完整的答案列表。我只想检索那些不被接受的答案(在给定的日期范围内(。是否需要在curl
命令中应用筛选器?
如何使用 Stack Exchange API 检索所有未接受答案的列表(在给定日期范围内(?
is_accepted
是其中一个字段。而且,在当前阶段,这似乎不能用于将结果值作为查询参数进行过滤。
在这种情况下,以下解决方法如何?我想建议使用jq
来过滤检索到的值。在此解决方法中,使用jq
从所有检索到的值中检索带is_accepted: false
的值。
示例命令:
curl "https://api.stackexchange.com/2.2/users/10348758/answers?page=1&pagesize=100&fromdate=1588291200&todate=1592179200&order=desc&sort=activity&site=stackoverflow&access_token=my-access-token&key=my-key" | gunzip | jq '[.items[] | select(.is_accepted == false)]'
- 在这种情况下,
jq '[.items[] | select(.is_accepted == false)]'
用于检索到的值。 - 通过此修改,将检索带有
"is_accepted": false
的值。
注意:
- 在此修改中,它假定您的访问令牌和密钥可用于请求
https://api.stackexchange.com/2.2/users/10348758/answers
。
引用:
- /answers/{ids} 的用法
- JQ