Tumblr API を使用したことはありませんが、タグのリストを作成できるはずですが、そのための組み込みメソッドはありません。/info
まず、メソッド1をクエリして、ブログ内の投稿の総数を見つける必要があります。その URL は次のとおりです。
api.tumblr.com/v2/blog/{base-hostname}/info?api_key={key}
それからの応答を取得し、それをオブジェクト (jQuery、extjs、w/e が機能します) にデコードすると、posts
投稿の合計数のフィールドを見つけることができます。これを使用して、メソッドを使用して、一度に 20 個の投稿をプルバックし始めることができます。これは、API によると最大/posts
です。その URL は次のとおりです。
api.tumblr.com/v2/blog/{base-hostname}/posts[/type]?api_key={key}&[optional-params=]
おそらく省略したいでしょうが、optional-params で/type
指定する必要があります。offset
オフセットを使用すると、一度に 20 個のすべての投稿を処理できます2。すべてをダウンロードするまで (/info
クエリから取得した数)。投稿をダウンロードすると、取得したタグを追跡できます。
タグリストを取得するためだけに投稿の本文をダウンロードする必要があるのはちょっと残念ですが、タグを提供する他の方法や、本文を抑制してメタデータのみを表示するオプションはありません投稿。
**編集**
1 : Felix のコメントによると、/info
返される投稿の数は時々わずかにずれていることが知られています。予想される数が多い場合は、予想した結果ではなく、実際に受け取った結果のみをループしていることを確認する必要があります。予想される数が少ない場合を処理するには、最後にあるはずのクエリを 1 つ実行して、結果が返されるかどうかを確認します。ただし、その時点で、/info
クエリをすべて削除して、/posts
結果が得られなくなるまでクエリを実行することを検討することもできます。
2 : Felix の 2 番目のコメントによると、API には、デフォルトのように一度にプルダウンできる投稿の数の値の範囲がリストされてい1-20
ます20
が、最大 まで受け入れると思われます50
。一度に 50 個の結果を取得すると、速度が向上したり、帯域幅が低下したりする可能性がありますが、コードを正しく実行するのがより複雑になります。これは文書化されていない機能であるため (読み取り: 単なるバグである可能性があります)、動作し続けるという保証はありません。そのため、一度に 50 件のクエリを実行することもできますが400
、サービスを API に一致させてデフォルトで 20 件に戻す場合に備えて、エラー コードなどを処理する準備が必要です。