web-dev-qa-db-fra.com

API Twitter: vérifier si un tweet est un retweet

J'ai trouvé cette question . Cependant, je pense que cela a changé sur la version 1.1 de l'API.

Si j'utilise la méthode search/tweets, comment puis-je savoir si le Tweet est un RT? Je vois que le champ retweeted renvoie toujours false. Y a-t-il un autre champ que je peux utiliser pour cette réponse?

19
Diolor

S'il s'agit d'un retweet, le Tweet contiendra une propriété nommée retweeted_status. Pour être complet, retweeted_status n'apparaîtra pas si le Tweet n'est pas un retweet. Plus d'infos sur: Tweets .

31
Joe Mayo

En vérifiant simplement le nom de la propriété

"retweeted_status"

si vous ne trouvez pas alors ce n'est pas RT.

4
Ravi Mane

Comme @Joe Mayo l'a dit, recherchez la clé retweeted_status sur l'objet status. 

J'ai un exemple qui n'est pas pris en compte par la suggestion de @Apoorv Ashutosh. 

Voir: https://Twitter.com/gppvt/status/474162466776449024 ceci redirigera (parce que c'est un retweet) vers le Tweet original. Cependant, si vous obtenez ce Tweet via l'API Twitter, il a retweeted_status. Notez que le texte ne contient pas "RT".

3
Michael

Le champ retweeté est false si le retweet n'est pas effectué à l'aide du bouton Retweet, mais plutôt via RT. Dans ce cas, il suffit de rechercher dans le champ "texte" de tous les tweets

RT @

Ce modèle peut être utile, mais je ne pense pas qu’il existe une autre fonction pour cela.

2
Apoorv Ashutosh

La propriété retweeted_status existera si le tweet reçu a été retweeté, sinon vous obtiendrez l’erreur AttributeError. Dans ce cas, vous souhaitez vous débarrasser des tweets retweetés:

def on_status(self, status):
    try:
        print "Retweeted ************* \n" + str(status.retweeted_status)
        return 
    except AttributeError:
        print "there is no attribut with name retweeted_status"
1

Juste pour ajouter un peu plus. (en utilisant Twitter gem (langage Ruby))

Vous pouvez vérifier si c'est un retweet en consultant le Tweet puis en obtenant ce dont vous avez besoin à partir du hachage retweeted_status.

t = client.status(#########) #function that obtains Tweet based on ID where # = Tweet ID
puts t.retweeted_status? # returns true or false
t.retweeted_status # returns the actual hash for that
1
Petros Kyriakou

Comme tout le monde l'a mentionné, vous pouvez vérifier si la propriété retweeted_status existe dans le sous-champ de réponse pour ce Tweet.

Cependant, selon la version actuelle de l'API , chaque objet Tweet a le champ retweeted qui stocke une valeur booléenne (Vrai ou Faux) qui vous indiquera si un Tweet a été retweeté. 

0
lespaul