【发布时间】:2019-05-13 21:54:16
【问题描述】:
我正在尝试使用此处记录的“之前”和“之后”查询字符串参数从 Typeform 检索所有响应:https://developer.typeform.com/responses/walkthroughs/#use-query-parameters-to-retrieve-specific-data
我宁愿不使用“since”和“until”,因为我一天可能有超过 1000 个响应(文档指出在这种情况下应该使用 before/after。)基于令牌的方法似乎无论如何都要更清洁。
我的问题是我永远无法检索与第一次调用中返回的“total_items”值一致的一组结果。也许我的期望不正确?我最终得到一个比那个值少几百的值。代码摘录如下。我在第一次调用中包含了一个空的“之前”查询字符串参数,因为文档表明该参数的存在会更改排序以与其流程顺序(而不是提交顺序)保持一致。
async getAllResults(formId) {
const opts = {
...this._opts,
url: `https://api.typeform.com/forms/${formId}/responses?page_size=1000&before`
}
let results = (await axios.request(opts)).data
let allResults = results.items
const totalResponseCount = results.total_items
while (results.items.length > 0) {
const lastToken = _.last(results.items).token
results = (await axios.request({ ...opts, url: opts.url + `=${lastToken}` })).data
allResults = _.concat(allResults, results.items)
}
// Fails
assert.ok(allResults.length === totalResponseCount)
return allResults
}
【问题讨论】:
标签: typeform