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.