やりたかったこと
以前、Googleスプレッドシートに記事一覧を取得出来るようにしたので、view数も取得出来るようにしたい
やりかた
APIでの取得方法
view数は記事一覧APIの返却値には含まれておらず、認証トークンを使用して各記事の詳細を取得するAPI (/api/v2/items/[記事のID]) から値を取得する必要がある。
認証トークンの取得
認証トークンはQiitaにログインして右上の自分のアイコンから「設定」→「アプリケーション」→「新しくトークンを発行する」で取得出来る。
記事の詳細情報取得関数を準備
記事IDを指定して情報を取得する下記のような関数をGoogleAppsScriptで用意する。
function detailReader(id) {
var apiUrl = "https://qiita.com/api/v2/items";
var token = "[認証トークン]";
var headers = {'Authorization' : 'Bearer ' + token};
var params = {'headers' : headers};
var detail = UrlFetchApp.fetch(apiUrl + "/" + id, params);
var jsonDetail = JSON.parse(detail.getContentText());
return jsonDetail;
}
一覧情報から詳細情報を取得
var detailKeys = {
'page_views_count' : "",
};
// jsonDataに記事一覧が取得されている
for (var idx in jsonData) {
// 記事一覧で取得出来る情報をスプレッドシートに出力
// ・・・中略・・・
// 詳細情報の項目をスプレッドシートに出力
var detail = detailReader(jsonData[idx]["id"]);
for(var detailKey in detailKeys) {
sheet.getRange(i, j).setValue(detail[detailKey]);
j++;
}
}