Using twitter API get error sometimes Using twitter API get error sometimes express express

Using twitter API get error sometimes


HTTP 420 is returned when you are being rate limited.

There is a https://publish.twitter.com/oembed resource URL, that is neither rate limited nor requires authentication. I think it returns the same things that your program expects. You can use that if you pass a query parameter url having the link to tweet. Try making the link like:

"https://publish.twitter.com/oembed?url=https://twitter.com/"+data.user.screen_name+"/statuses/"+data.id_str

For sample data returned by Twitter click here


As per pii_ke's response you should simply modify tweet_id as follows:

var tweet_id = "https://publish.twitter.com/oembed?url=https://twitter.com/" + data.user.screen_name + "/statuses/" + data.id_str;

Full modified code you can copy paste:

var Twitter=require('twitter');var lclconf = require('../config.json');var client=new Twitter({  consumer_key: lclconf.twitter.consumer_key,  consumer_secret: lclconf.twitter.consumer_secret,  access_token_key: lclconf.twitter.access_token_key,  access_token_secret: lclconf.twitter.access_token_secret});stream.on("data", function(data){  console.log(data.id_str);  var tweet_id = "https://publish.twitter.com/oembed?url=https://twitter.com/" + data.user.screen_name + "/statuses/" + data.id_str;  request.get(tweet_id)  .end(function(err,res){      if(err){        console.log("Error from Twitter API: " + err);      }else{        //console.log(res.body);        io.emit('tweet',res.body);      }  });});stream.on('error', function(err){  console.log("Error getting tweets: "+err);});io.on('connection', function(client){  client.on("join", function(data){    console.log(data);  });  client.emit("join",{"message":"running"});});