3 votes

Obtenez tous les tags uniques du blog tumblr

Il existe des moyens d'obtenir des articles et d'autres détails à l'aide de balises, à partir de votre blog Tumblr, et vice versa, comme indiqué dans le document Tumblr API V2

Je veux obtenir une liste de tous les tags (tags uniques) indépendamment des articles de blog.

Donc si j'ai 10 posts tagués Technology , Web y 3 posts tagués JavaScript , Web - Je veux interroger mon blog de telle sorte qu'il me donne Technology , Web y JavaScript

Disons, par exemple, un tableau - results.posts.tags = ["Technology", "Web", "JavaScript"] ou un objet, que je peux creuser pour trouver la tags et ensuite itérer dans une boucle.

3voto

Windle Points 772

Je n'ai jamais utilisé l'API de Tumblr, mais il semble que vous devriez être en mesure de créer une liste de balises - mais il n'y a pas de méthode intégrée pour cela. Tout d'abord, vous devez trouver le nombre total d'articles dans le blog en interrogeant la base de données de Tumblr. /info méthode 1 . L'URL pour cela est :

api.tumblr.com/v2/blog/{base-hostname}/info?api_key={key}

En prenant la réponse et en la décodant dans un objet (jQuery, extjs, etc.), vous pouvez trouver l'adresse suivante posts pour le nombre total de postes. À l'aide de ce champ, vous pouvez commencer à récupérer les messages 20 par 20, le maximum selon l'API, en utilisant la commande /posts méthode. L'URL pour cela est :

api.tumblr.com/v2/blog/{base-hostname}/posts[/type]?api_key={key}&[optional-params=]

Vous voulez probablement omettre /type mais vous devrez préciser offset dans les paramètres facultatifs. Avec le décalage, vous pouvez simplement travailler sur tous les postes, 20 à la fois. 2 jusqu'à ce que vous les ayez tous téléchargés (le nombre que vous avez obtenu à partir de l'écran d'accueil). /info requête). Au fur et à mesure que vous téléchargez les messages, notez les balises que vous obtenez.

Il est dommage de devoir télécharger le corps du message pour obtenir la liste des balises, mais je ne vois pas d'autre méthode permettant d'obtenir les balises, ni d'option permettant de supprimer le corps du message et de ne voir que les métadonnées.

**EDIT**

1 : Par le commentaire de Felix le nombre de messages /info Les retours sont connus pour être parfois légèrement erronés. Dans le cas où le nombre attendu est élevé, vous devez vous assurer que vous ne bouclez que sur les résultats que vous avez réellement reçus, et non sur ceux que vous aviez anticipés. Pour gérer le cas où le nombre attendu est faible, vous pourriez effectuer une requête au-delà de ce que la fin devrait être et voir si vous obtenez des résultats en retour. À ce moment-là, vous pourriez envisager d'abandonner l'option /info l'interrogation tous ensemble et juste l'interrogation /posts jusqu'à ce que vous n'obteniez plus de résultats.

2 : Conformément au deuxième commentaire de Felix, même si l'API indique que la plage de valeurs pour le nombre de messages que vous pouvez afficher en une seule fois est la suivante 1-20 avec 20 par défaut, supposément il acceptera jusqu'à 50 . Le fait d'extraire 50 résultats à la fois pourrait accélérer les choses et réduire votre bande passante, mais cela rendra votre code plus compliqué à faire correctement. Puisqu'il s'agit d'une fonctionnalité non documentée (lisez : il pourrait s'agir d'un bogue), il n'y a aucune garantie qu'elle continuera à fonctionner. Vous pouvez donc essayer d'interroger 50 personnes à la fois, mais vous devez être prêt à gérer un problème de type 400 ou un code d'erreur similaire, au cas où ils feraient en sorte que leur service corresponde à l'API et reviennent ensuite à 20 par défaut.

0voto

Circeus Points 146

Je ne sais pas comment cela fonctionne, mais c'est le cas : regardez la Bookmarklet de la liste des tags Tumblr . Cela devrait vous donner au moins un code que vous pouvez utiliser.

0voto

scintillate Points 1

Je sais que c'est un vieux post, mais j'ai pensé qu'il pourrait être utile pour certaines personnes car j'ai pris le temps de faire ceci dans un javascript qui renvoie tous les tags uniques comme un objet javascript.

https://github.com/scintillate/tumblrtag/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X