【发布时间】:2017-11-11 06:55:49
【问题描述】:
我正在使用 node js 中的 istagram api。我有一个数组,在数组中存储超过 20k 的 instagram id。然后我在该数组上执行 foreach 并一个接一个地获取 instagram id 并去获取生物但是那个时候我 得到错误像 这个 RequestsLimitError: You just made too many request to Instagram API。我也在设置超时后尝试每 5 次调用,但我仍然收到相同的错误,所以如何解决这个错误,任何人都知道如何解决它,然后请告诉我。
这是我的代码 =>
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');
}
}
});
任何知道如何解决此问题的人请帮助我。
【问题讨论】:
-
@Molda 无法使用 setimeout 并修复该问题是否可能?
-
限制是每小时 500 或 5000 个(沙盒或实时应用)请求,因此请调整超时以确保不超过限制。
-
@Molda 我已经设置了超时,但是我已经在控制台中运行了我的 req 所以它同时运行而不是停止超时所以它的代码是正确的还是我在那个代码中的错误?实际上我用过 asyn.parralel 所以
标签: node.js instagram-api