获取错误与RequestsLimitError类似:您只是向节点js中的instagram API发出太多请求?
问题描述:
我在节点js中使用isntagram api。我有一个阵列,并在阵列商店20k以上的Instagram ID。然后我被一个拿Instagram的ID做阵列上的foreach和一个去取生物,但我得到错误像这RequestsLimitError那个时候:你刚才提出太多要求,Instagram的API。我设置了超时后,每5个电话也尝试,但仍然我得到同样的错误,所以如何解决这个错误任何人知道如何解决它,然后请让我知道。获取错误与RequestsLimitError类似:您只是向节点js中的instagram API发出太多请求?
这里,这是我的代码=>
var InstaId = ["12345687",20k more id store here in the array]
var changesessionFlage = 0;
async.each(InstaId, function (id, callback) {
async.parallel([
function (cb) {
if (id) {
setTimeout(function() {
Client.Account.getById(sess, id).then(function (bio) {
console.log("changesessionFlage" + changesessionFlage);
changesessionFlage++
//console.log("bio : ", bio._params); // here i am getting bio one by one user
if (changesessionFlage == 6) {
changesessionFlage = 0;
}
cb(null, bio._params);
})
.catch(function (err) {
console.log("get boi: ", err)
cb(null, bio._params);
})
}, (changesessionFlage == 5) ? 10000 : 0)
}
}
], function (err, results) {
if (err) {
console.log(err);
return;
}
Result = results
callback();
});
}, function (err) {
if (err) {
console.log(err);
return;
}
else {
console.log("Result=>", Result)
if (Result) {
console.log("Result[0]=>", Result[0])
var ws = XLSX.utils.json_to_sheet(Result[0]);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "People");
var wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
res.end(wbout, 'binary');
}
}
});
任何一个知道如何解决这个问题,那么请帮助我。
答
你的setTimeout是使用不当,所有的API调用在后一次10000迟延。
由于这是一次性的工作,只是分裂20K用户名到4K批次和执行他们每隔一小时。这样,你将在5k/hr的API限制下
有一些限制https://www.instagram.com/developer/limits/ – Molda
@Molda不可能使用setimeout并修复这个问题是可能的吗? – Edit
每小时限制为500或5000(沙盒或实时应用)请求,因此请调整您的超时时间,以确保不超过限制。 – Molda