如何在此处使用拦截器来更改令牌?基本上,当我达到请求限制时,我想在发出请求之前更改令牌。到目前为止,我尝试将其添加到get请求中,但出现未定义的错误。这是代码:
//class for twitter instance
class TwitterDev{
constructor(twitterObj){
if(Object.keys(twitterObj).includes('token')){
this.token= twitterObj.token;
}
this.instance = function twitterAxios(x){
let token = x;
let promise = new Promise((resolve, reject) => {
let header = axios.create({
baseURL: "https://api.twitter.com",
timeout: 90000,
headers: {
Authorization: "Bearer " + token }
});
resolve(header);
reject(error);
});
return promise;
}
}
get(uri, params={}){
return this.instance(this.token).then(obj=>{return obj.get(uri,params)});
//route that instantiates class
let token = process.env.TWITTER_TOKEN,
token2 = process.env.TWITTER_TOKEN2
let twitter3 = new TwitterDev({token:token});
let ids_test = ["xxxxx"];
let globalCounter2 = 0;
ids_test.forEach(id => {
let userObj = {
params: {
id: id,
count: "5000",
stringify_ids: true
}
};
getUserFollowers("/1.1/followers/ids.json", userObj, []).then(res => {
console.log(res.length);
fs.writeFileSync(
`${userObj.params.id}_p2_${setDate()}.json`,
JSON.stringify(res)
);
}).catch(err=>handleRequestError(err));
});
get用户函数返回twitter3并使用params调用.get()方法,这是我尝试插入拦截器的地方。有任何想法吗?