2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-04-29

アクセストークン取得

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

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 で気軽に集計

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?