💓

GASでQiitaの記事を取得しよう

2024/04/02に公開

GASを触ろうとした経緯

まず私はこの3月から通販会社から未経験でエンジニア系の仕事に転職しました。
メンターがいて1から教えてもらうという甘い考えでいましたが、そもそも社内でゴリゴリのエンジニアが0人でかなり入社してやばいなぁと感じている日々。そんな中上司から「暇ならGAS触ってトリガーを設定したりしてJavascriptの勉強したら?」というアドバイスをもらって、LINENotifyやBOT機能を使ってQiitaの記事をお知らせする機能を作ろうと思ったのです。

やりたいこと

今回はGASとLINENotifyを使用してQiitaの記事を週1で通知するような機能を作っていきます。
本件で必要になってくるデータは
①LINENotifyのToken
②Qiitaのアクセストークン

①LINENotifyの登録
https://notify-bot.line.me/ja/
ログイン>右上にある自分のアイコンをタッチ>マイページ>トークンを発行
※トークンをどこかに保存してください

②Qiitaのアクセストークンの取得
https://qiita.com/settings/account
右のサイドバー>アプリケーション>新しくトークンを発行する>
※トークンを保存してください

実際のコード

function sendQiitaNextJsArticlesToLINE() {
  // Qiita APIを使って「Next.js」タグが付いた記事を取得する
  var tag = "Next.js";
  var url = `https://qiita.com/api/v2/tags/${encodeURIComponent(tag)}/items?page=1&per_page=5`;
  
  // APIからデータを取得する
  var response = UrlFetchApp.fetch(url, {
    "method": "get",
    "headers": {"Authorization": "Bearer ここにQiitaのアクセストークン"}
  });
  var articles = JSON.parse(response.getContentText());
  
  // 記事のタイトルとURLをメッセージに整形する
  var message = "Next.jsの人気記事トップ5:\n";
  for (var i = 0; i < articles.length; i++) {
    var article = articles[i];
    message += (i+1) + ". " + article.title + "\n" + article.url + "\n"+ "\n";
  }
  
  // LINE Notifyのトークン(事前に取得しておく)
  var token = "LINENotifyToken";
  
  // LINE Notifyにメッセージを送信する
  var options = {
    "method" : "post",
    "headers" : {"Authorization" : "Bearer " + token},
    "payload" : {"message" : message}
  };
  
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

ポイント

自分はNextJsでアプリを作ったりしているので

var tag = "Next.js";

でNext.Jsと指定しておりますが、
自分が取得したい文字列を入力したら問題なく出てくると思います。

最後に

この記事が初めての記事でスモールステップですが、これからいっぱい記事を作成できたらと思ってます。現在知り合いの古着屋さんにバーコードを使った商品管理ページをNextJsで作成しており、カメラでバーコードを読み取って商品の管理ができるように実装中です!
がんばります。。。

Discussion