Help us understand the problem. What is going on with this article?

Qiita APIで記事のLGTM数と、View数を習得する

アクセストークン取得

ユーザの管理画面から、対象アカウントへのアクセストークンを取得する

Qiita API v2 documentation - Qiita:Developer
認証認可
Qiita::TeamのAPI、またはQiitaのGETリクエスト以外のAPIを利用するには、アクセストークンをリクエストに含める必要があります。アクセストークンは、後述するOAuthを利用した認可フローか、ユーザの管理画面から発行できます。

記事のLGTM数を習得する

sample.sh
#!/bin/bash

QIITA_TOKEN=[アクセストークン]
QUERY_STR="https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=100"
LGTM_TOTAL=0

### LGTM total
LGTM_TOTAL=`curl -sH "Authorization: Bearer ${QIITA_TOKEN}" \
    "$QUERY_STR" \
    | jq -r '.[] | [.likes_count] | @csv' | awk '{s += $1} END {print s}'`
echo "LGTM_TOTAL--->"
echo $LGTM_TOTAL

テスト

$ bash sample.sh
LGTM_TOTAL--->
131

記事のView数を習得する

sample2.sh
#!/bin/bash

QIITA_TOKEN=[アクセストークン]
QUERY_STR="https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=100"
VIEW_TOTAL=0

### VIEW total
ITEM_IDs=`curl -sH "Authorization: Bearer ${QIITA_TOKEN}" \
    "https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=100" \
    | jq -r '.[] | [.id] | @csv'`

for ITEM_ID in $ITEM_IDs
do
    ITEM_ID=`echo $ITEM_ID | tr -d '"'`
    TMP=`curl -sH "Authorization: Bearer ${QIITA_TOKEN}" \
        "https://qiita.com/api/v2/items/${ITEM_ID}" \
        | jq -r '.page_views_count'`
    VIEW_TOTAL=$(( $VIEW_TOTAL+$TMP ))
done

echo "VIEW_TOTAL--->"
echo $VIEW_TOTAL

テスト

$ bash sample2.sh
VIEW_TOTAL--->
91141

その他

記事100個以上に対応する場合は、page/per_pageを調整する。
per_pageの最大値は100に設定されているため。

[Qiita API v2 documentation - Qiita:Developer]
ページネーション
一部の配列を返すAPIでは、全ての要素を一度に返すようにはなっておらず、代わりにページを指定できるようになっています。これらのAPIには、1から始まるページ番号を表すpageパラメータと、1ページあたりに含まれる要素数を表すper_pageパラメータを指定することができます。pageの初期値は1、pageの最大値は100に設定されています。また、per_pageの初期値は20、per_pageの最大値は100に設定されています。

Macで jq: command not found のエラーが出る場合

bash sample.sh
sample.sh: line 5: jq: command not found

Macの場合はhomebrewでインストールする

$ brew install jq

これでjqが使える

参考

Qiita API v2 documentation - Qiita:Developer
jqコマンドでjsonを扱う
Qiita APIを利用して記事のViewsとストック数がまとめて取得できるAPIを作ってみた
Qiita API でいいねとVIEW数をCurlで取得する方法
【Qiita API】いいね!閲覧数の自動集計
awk で気軽に集計

seigot
# 投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。 # 投稿内容は執筆時点の情報であり、必ずしも最新情報であるとはかぎりません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした