我正在研究 Airtable API 集成,但我对这种事情还是完全陌生......我正在将所有记录拉到特定视图中,对数据进行处理,然后更新所有复选框字段那些记录是真实的。问题是 Airtable 将其 api 限制为 5 次调用/秒,而且我不完全确定我是否正确发送数据。
function update_record(record_id) {
$.ajax({
url: 'https://api.airtable.com/v0/myAirtableBase/Table/' + record_id,
headers: {
'Authorization': 'Bearer apikey'
},
method: 'PATCH',
data: {
'fields': {
'Checkbox Field': true
}
},
success: function() {
console.log('it worked! I think');
},
error: function() {
console.log('nope');
}
});
}
$('#check_printed_button').click(function() {
var time = 0;
$('.record-name').each(function() {
var record_id = $(this).data('recordId');
setTimeout(update_record(record_id, time), time);
time += 250;
});
});
在此之前,我将打印出表中的每条记录,其 id 位于数据属性中。
我的网络窗格显示,我收到了所有选项请求,返回 200,但在最后几个返回之前,我收到返回“429 Too Many Requests”的请求方法。我试图通过 setTimeout 来避免这种情况,并将调用错开 0.25 秒,但这显然行不通。然后我又得到了几个 200 状态,然后是另一个 429,然后是几个 200,然后又是几个 429,然后我返回每个 PATCH 请求,状态为“422 不可处理条目”。这些响应显示类型:'INVALID_VALUE_FOR_COLUMN',消息:'字段(复选框字段)不能接受值 true'。
帮帮我?真的不知道下一步该去哪里。如果这真的是我需要的地方,我完全愿意放弃这个并学习使用官方 node.js 客户端的到底是什么节点。