つくったもの
GASでAPIを使う練習として、
「Qiita APIを使って特定のタグ(今回はGoogleappsscript)が付いた記事の最新上位5記事を特定のLINE通知する。」
スクリプトを作りました。
Qiita API ドキュメント
使用したQiita APIはこちら
[Qiita APIドキュメント]指定されたタグが付けられた記事一覧を、タグを付けた日時の降順で返します。
https://qiita.com/api/v2/docs#get-apiv2tagstag_iditems
つくってみる
1.LINE Notifyトークンの取得
LINE Notifyトークンの取得方法は下記に記載しています。
[GAS]GASでスクレイピングしてLINEグループとChatworkグループへ通知する
https://qiita.com/jooji/items/a779e5b98f0186458093
2.コード作成
function getQiitaArticle() {
var tag = "GoogleAppsScript" //取得したい記事のタグを指定する
var endpoint = "https://qiita.com/api/v2/tags/" + tag + "/items"
var paramStr = "?per_page=5&page=1"; //1ページにつき5記事を1ページ分。つまり5記事。
var res = UrlFetchApp.fetch(endpoint + paramStr)
var json = JSON.parse(res.getContentText());
var message
json.forEach(function(item){
message += item["title"] + "\n" + item["url"] + "\n"
});
//プロパティストアに格納したLINEトークンを取得する
LINE_TOKEN = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN');
var options =
{
"method" : "post",
"payload" : "message=" + message,
"headers" : {"Authorization" : "Bearer "+ LINE_TOKEN}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);//LINE通知する
}
3.トリガーを作成する。
トリガー管理画面になります。右下のトリガーを追加をクリックします。
毎日一回通知を受け取りたいので、イベントのソースを”時間主導型”、時間ベースのトリガータイプを”日付”、時刻は好きな時間を選択します。
補足
- LINEトークンはべた打ちせずにプロパティストアを使ってみました。
- Qiitaトークンはこのページの内容だけでしたら不要です。操作するAPIによっては必要です。今回5記事だけですが、取得ページが多い場合トークンによる認証が必要かもしれません。詳しくはドキュメントをご確認ください。
結果
次回
つぎは、LineBotと対話して記事一覧を受けれるようにしたいと思っています。
参考にしたサイト
プロパティストアについては下記Webサイトを参考にしました。
【初心者向けGAS】プロパティストアの概要とスクリプトプロパティの編集方法
https://tonari-it.com/gas-property-store/
【初心者向けGAS】スクリプトプロパティを操作してそのデータを取り出す方法
https://tonari-it.com/gas-properties-script-property/