LoginSignup
3
3

More than 3 years have passed since last update.

Qiita APIを使って特定タグが付いた記事一覧をLINE通知する

Last updated at Posted at 2020-05-01

つくったもの

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.コード作成

GAS
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.トリガーを作成する。

編集→現在のトリガーをクリックします。
image.png

トリガー管理画面になります。右下のトリガーを追加をクリックします。
image.png

毎日一回通知を受け取りたいので、イベントのソースを”時間主導型”、時間ベースのトリガータイプを”日付”、時刻は好きな時間を選択します。
image.png

補足

  • LINEトークンはべた打ちせずにプロパティストアを使ってみました。
  • Qiitaトークンはこのページの内容だけでしたら不要です。操作するAPIによっては必要です。今回5記事だけですが、取得ページが多い場合トークンによる認証が必要かもしれません。詳しくはドキュメントをご確認ください。

結果

LINEで記事一覧を受け取れました。
image.png

次回

つぎは、LineBotと対話して記事一覧を受けれるようにしたいと思っています。

参考にしたサイト

プロパティストアについては下記Webサイトを参考にしました。

【初心者向けGAS】プロパティストアの概要とスクリプトプロパティの編集方法
https://tonari-it.com/gas-property-store/
【初心者向けGAS】スクリプトプロパティを操作してそのデータを取り出す方法
https://tonari-it.com/gas-properties-script-property/

3
3
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
3
3