アクセストークン取得
ユーザの管理画面から、対象アカウントへのアクセストークンを取得する
Qiita API v2 documentation - Qiita:Developer
認証認可
Qiita::TeamのAPI、またはQiitaのGETリクエスト以外のAPIを利用するには、アクセストークンをリクエストに含める必要があります。アクセストークンは、後述するOAuthを利用した認可フローか、ユーザの管理画面から発行できます。
記事のLGTM数を習得する
#!/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数を習得する
#!/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 で気軽に集計