Node.js LinkedIn API:随机401错误

时间:2015-12-05 11:54:31

标签: node.js linkedin

我有Node.js功能,它使用" node-linkedin"来导入LinkedIn Feed。模块。 API有时会针对给定的LinkedIn帐户成功运行,但会随机为同一帐户抛出401错误。

    importLinkedInFeeds = function(user, linkedin, start, callback) {//linkedin refers to linkedInToken
    this.getUserFeedsByDate(linkedin, start, function(err, data) {
        if (!err && data) {

            if (data._count > 0 || data._total > 0) {

                userManagementObj.updateLinkedinLastSync(user._id, function(error, isSuccess, message) {});
                var feedDirect = [];
                var feedOther = [];
                var allUserLinkedinIds = [];
                var referenceIds = [];

                for (var i = 0; i < data.values.length > 0; i++) {
                    var obj = validateAndParseLinkedinFeed(user, linkedin.id, data.values[i]);

                    if (obj.isValid) {
                        feedDirect = feedDirect.concat(obj.feedDirect);
                        feedOther = feedOther.concat(obj.feedOther);
                        allUserLinkedinIds = allUserLinkedinIds.concat(obj.userLinkedinIds);
                        referenceIds = referenceIds.concat(obj.referenceIds);
                    }
                }

                if (referenceIds.length > 0) {
                    referenceIds = common.removeDuplicate_id(referenceIds, true);
                }

                if (allUserLinkedinIds.length > 0) {
                    allUserLinkedinIds = common.removeDuplicate_id(allUserLinkedinIds, true);
                    var query = {
                        "linkedin.id": {
                            $in: allUserLinkedinIds
                        }
                    };
                    var projection = {
                        emailId: 1,
                        firstName: 1,
                        lastName: 1,
                        publicProfileUrl: 1,
                        profilePicUrl: 1,
                        companyName: 1,
                        designation: 1,
                        mobileNumber: 1,
                        skypeId: 1,
                        location: 1,
                        linkedin: 1
                    };
                    userManagementObj.selectUserProfilesCustomQuery(query, projection, function(error, users) {
                        if (error) {
                            logger.info('Error Linkedin importLinkedInFeedToInteractions():LinkedIn selectUserProfilesCustomQuery() ', error);
                            callback(false);
                        } else if (users && users.length > 0) {
                            for (var u = 0; u < users.length; u++) {
                                for (var int = 0; int < feedOther.length; int++) {
                                    if (feedOther[int].linkedinId == users[u].linkedin.id) {
                                        feedOther[int].userId = users[u]._id;
                                        feedOther[int].firstName = users[u].firstName;
                                        feedOther[int].lastName = users[u].lastName;
                                        feedOther[int].publicProfileUrl = users[u].publicProfileUrl;
                                        feedOther[int].profilePicUrl = users[u].profilePicUrl;
                                        feedOther[int].companyName = users[u].companyName;
                                        feedOther[int].designation = users[u].designation;
                                        feedOther[int].location = users[u].location;
                                        feedOther[int].mobileNumber = users[u].mobileNumber;
                                        feedOther[int].emailId = users[u].emailId;
                                    }
                                }
                            }
                            addInteractionsBatch(user, feedDirect, feedOther, referenceIds, callback)
                        } else addInteractionsBatch(user, feedDirect, feedOther, referenceIds, callback)
                    })
                } else {
                    addInteractionsBatch(user, feedDirect, feedOther, referenceIds, callback)
                }
            } else {
                logger.info('No linkedin feeds', user.emailId);
                callback(true)
            }
        } else {
            callback(false)
        }
    })
}

}

0 个答案:

没有答案