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
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.
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
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
Selon le documentation officielle
Passer le paramètre suivant exclude_replies=true
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
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
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);}
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"