2016-04-07 14 views
0

Ich versuche, die Twitter-API-Post-Methode zu verwenden, um einen Tweet zu veröffentlichen, der mit der Get/Search-Methode gefunden wurde. Wenn ich jedoch das Ergebnis der Suche unten in die Variable 'st' speichere, funktioniert es nicht und ergibt immer einen Fehler.Wie speichert man Twitter-Such-API-Tweets und retweet sie?

var st = "test" //This is where I want to store the tweet found by calling search. 

var params = { 

q: 'hillary_clinton', 
count: 1, 
type: 'recent', 
geocode: " 38.913376,-95.3352939, 3mi" 
exclude_replies: true, 
retweeted: false, 

}; 

T.get('search/tweets', params, gotData); 

function gotData(err, data, response) { 
    var tweets = data.statuses; 
    st = tweets[0].text // store the first search result in 'st' 



} 

var tweet = { 

    status: st 

} 

T.post('statuses/update', tweet, tweeted); 

function tweeted(err, data, response) { 
if (err) { 
    console.log("It did not work") 
    console.log(data) 
    } else { 
console.log("it worked") 
} 

} 

Allerdings, wenn ich das Programm ausführen, tritt der Fehler immer (weil es mir doppelte Tweets nicht zulassen, tweet) - das bedeutet „st“ ist nicht korrekt zugewiesen wird, wie ich es will. Wo gehe ich falsch?

Antwort

0

Wenn Sie nach Tweets suchen, fragen Sie nach den ersten 5 Ergebnissen, also erhalten Sie immer diese 5 Ergebnisse und setzen Sie st auf den ersten Tweet in diesem Tweet-Array.

Sie können ein paar Dinge tun.

Speichern Sie das gesamte Array als st und durchlaufen Sie es dann, um die anderen Tweets zu erhalten.

einige der api Parameter bei Ihrer nächsten Suche verwenden wie ‚since_id‘

Gibt Ergebnisse mit einer ID größer als (das heißt, die aktuellere) als die angegebene ID. Der Anzahl der Tweets, auf die über die API zugegriffen werden kann, sind Grenzen gesetzt. Wenn das Limit von Tweets seit der since_id aufgetreten ist, wird since_id zur ältesten verfügbaren ID gezwungen.

prüfen einige der anderen Parameter für die API aus,

Twitter Search Docs

* natürlich können Sie nur für Hilary warten, etwas Neues zu twittern, sollte nicht zu lang sein, von einer Wartezeit ...

+0

Ich versuchte es sogar nur, um nur 1 Tweet zurückzugeben, aber es akzeptiert immer noch nicht die Neuzuordnung von st. Ich brauche eigentlich nicht mehr als einen Tweet. Ich möchte nur einen Tweet aus der Suchmethode in 'st' speichern und ihn dann selbst mit der Post-Methode twittern. –

+0

können Sie das Tweets-Array protokollieren und andere Tweets sehen? Was passiert, wenn Sie st auf Tweets setzen [1]? ist es anders? – JordanHendrix

+0

Ich habe gerade überprüft und es ist jetzt erfolgreich zuweisen st = tweet [0] .text, aber ich bekomme immer noch einen Fehler, wenn die "post" -Funktion aufgerufen wird und st als Parameter übergeben wird. Es sagt, dass der Status ein Duplikat ist, was bedeutet, dass es immer noch denkt, dass ich "Test" twittere. –