yuya-yuzen

【GAS】Qiitaのトレンド記事のタイトルとURLを毎朝Slackに自動送信する

2021/02/17
2021/02/17

手順

  1. SlackでIncoming WebHooksを登録する
  2. Google Apps Scriptを書く

    1. ライブラリをインポートする
    2. コードを書く
  3. トリガーを設定する

SlackでIncoming WebHooksを登録する

Slack内で、アプリを追加の所からIncoming WebHooksを登録します。 そこで得られた Webhook URL を後ほど使います。

Google Apps Scriptを書く

ライブラリをインポートする

「リソース」の「ライブラリ」からインポートできます。 今回は Parser というライブラリを使います。

以下のキーを入力するとインポートできます。 M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV

バージョンを指定して保存したらインポート完了です。

コードを書く

function main() {
  const qiitaUrl = 'https://qiita.com/';
  const html = UrlFetchApp.fetch(qiitaUrl).getContentText();
  const articles = Parser.data(html).from('<h2>').to('</h2>').iterate();

  // Slackに送信するメッセージの作成
  var message = '本日のQiitaトレンド記事一覧です。\n\n';
  for each(article in articles) {
    var title = Parser.data(article).from('>').to('</a>').build();
    var url = Parser.data(article).from('href="').to('"').build();
    message += title + '\n' + url + '\n\n';
  }

  // 以下、Slack用の設定
  const username = 'QiitaTrendBot';
  const jsonData = {
    "username" : username,
    "text" : message
  };
  const payload = JSON.stringify(jsonData);
  const options = {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : payload
  };

  // Incoming WebHooksの登録で得られたWebhook URL
  const postUrl = 'https://hooks.slack.com/services/xxxx';
  UrlFetchApp.fetch(postUrl, options);
}

トリガーを設定する

GASを書くエディタの時計マークをクリックすると、トリガーの設定画面が出てきます。 自分は「時間主導型」「日付ベース」「午前7時~8時」と設定しました。 これで毎朝、Qiitaのトレンド記事のタイトルとURLをSlackに自動で送信してくれます。

参考


Share:
ゆうや