web-dev-qa-db-fra.com

Comment exclure les retweets et les réponses dans une API de recherche?

Comment exclure les retweets et les réponses dans une API de recherche?

J'essaie d'extraire les flux de Twitter à l'aide de l'API de recherche. Par conséquent, je reçois également des réponses et des retweets.

Je veux donc exclure les réponses et exclure.

Comment le faire, quiconque m'aide.

Ceci est mon URL:

https://api.Twitter.com/1.1/search/tweets.json?q=from:rioferdy5&count=20&result_type=recent

10
rakesh r

Il n'y a aucun moyen direct d'exclure les retweets et les réponses de l'API. Cependant, vous pouvez filtrer les résultats que vous avez obtenus.

Pour les réponses, vous pouvez vérifier si le champ in_reply_to_status_id que vous obtenez de api est null, cela signifie que ce n'est pas une réponse sinon s'il contient un identifiant, alors c'est une réponse.

Pour retweet, si vous voulez des publications qui n'ont jamais été retweetées, vous pouvez rechercher retweet_count = 0 ou si vous souhaitez des publications qui n'ont pas été retweetées par votre utilisateur authentifié, vous pouvez rechercher retweeted = false.

3
Hitesh

Je pense que ce qui précède est incorrect, vous pouvez utiliser des filtres dans l’API de recherche, mais la documentation est très médiocre (inexistante?).

Votre requête deviendrait:

?q=from:rioferdy AND -filter:retweets AND -filter:replies&count=20&result_type=recent

Plus d’astuces de filtrage ont été obtenues ici: Comment maîtriser Twitter Search: Opérateurs et filtres booléens de base

39
Paul Thomas

Ancien post, mais les gens pourraient toujours tomber sur lui.

La plupart des opérateurs de requête sont documentés ici: https://dev.Twitter.com/rest/public/search

Mais pour la méthode search/tweets , vous pouvez également spécifier exclude:replies et/ou exclude:retweets afin de filtrer les réponses et les retweets du résultat.

Il suffit de le tester dans API Console Tool et de constater par vous-même.

Bonus: Un autre opérateur de requête non documenté est filter:verified pour obtenir les tweets d'utilisateurs vérifiés.

Exemple de requête: cats filter:Vine filter:verified exclude:replies exclude:retweets

11
phuc77

Selon le documentation officielle

Passer le paramètre suivant exclude_replies=true

2
ex0b1t

Réponse très tardive, comme tout le monde, mais je pense que la deuxième réponse de Paul devrait être la "bonne". J'aimerais que Twitter documente mieux cela, ou le rende plus connu, mais vous pouvez faire une tonne de filtres de recherche, même avec leur API standard en 2018.

https://developer.Twitter.com/fr/docs/tweets/rules-and-filtering/overview/standard-operators

Voici une liste assez exhaustive d'exemples :) et les retweets se situent quelque part au milieu.

-filter:retweets
1
Kehran

Ceci est autorisé comme indiqué dans la documentation officielle

puppy -filter:retweets  containing “puppy”, filtering out retweets

https://developer.Twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators.html

1
Michael C

Désolé je suis en retard à la fête ici. Je suis d'accord avec Hitesh en ce sens qu'ils ne fournissent pas un moyen d'exclure les retweets de manière native, mais chaque Tweet qui est un retweet a un objet retweet dans le json retourné. Vous pouvez donc parcourir vos tweets et exclure ceux qui ont un retweeted_status typeof 'objet' (signifiant qu'ils sont un retweet de quelqu'un d'autre) ou conserver ceux qui ont un typeof 'non défini' (ce qui signifie qu'ils sont originaux). Le problème avec retweet_count=0 est que quelqu'un comme @pattonoswalt aura des retweets sur tous ses tweets. Ainsi, le nombre ne sera jamais égal à zéro, même s'il s'agit d'originaux.

Vous pouvez utiliser quelque chose comme ça dans une boucle:

if(typeof tweets[i].retweeted_status === 'object') {tweets.splice(i,1);}

ou

if(typeof tweets[i].retweeted_status !== 'undefined') {tweets.splice(i,1);}

1
JeremyS

oui, vous pouvez exclure les retweets pendant l'API de recherche en ajoutant -RT dans la chaîne de recherche (q). Ex: search?q="#demo -RT"

0
Prabin Kumar Das