【问题标题】:Getting Error Like RequestsLimitError: You just made too many request to instagram API in node js?出现 RequestsLimitError 之类的错误:您刚刚在节点 js 中向 instagram API 发出了太多请求?
【发布时间】: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


【解决方案1】:

您的 setTimeout 使用不正确,所有 API 调用都是在 10000 延迟后立即进行的。

由于这是一项一次性作业,只需将 20K 用户名拆分为 4K 批次并每小时执行一次。这样您将低于 5k/hr API 限制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多