Script(GAS)で記事要約Botを作ってみたおとの2024/07/01に公開JavaScriptSlackGASGeminitechはじめに現代は情報が溢れすぎており、必要な記事や情報を効率的に把握するのが難しくなっています。インターネットやSNSでは膨大な量のコンテンツが日々生成されており、重要な記事を見逃したり、読む時間がないと感じている人も多いのではないでしょうか。そこで、今回作成したのが、URLを指定するだけで記事の要約をSlackに投稿できるBotです。主な機能は次のとおりです。要約した文章をSlackチャンネルに投稿このBotを活用することで、Slackのチャンネルのメンバーは重要な記事を見逃さず、必要な情報に迅速にアクセスできます。このBotは以下の技術を使って構成されています。Slackとの連携Botの動作フローは以下の通りです。Proを採用した理由は以下の通りです。以下の手順で開発を進めます。Sheet(スプレッドシート)の作成まず、スプレッドシートを作成し、以下の列を用意します。投稿先チャンネルID本シートのA列にURLが入力された場合、もしくは、SlackでメンションされたメッセージにURLが含まれていれば、Webページの記事内容が要約され、Slackに投稿される仕組みです。投稿完了後、B列〜D列の情報は自動で記載されます。投稿先のチャンネルを変更する場合は、E列にSlackチャンネルのIDを記入します。SlackチャンネルIDの取得方法については、こちらの記事を参考にしてください。Appを作成し、トークンを取得します。具体的な作成〜取得方法はこちらの記事を参考にしてください。Scriptプロジェクトを作成し、以下のファイルを追加します。common.gs共通の関数と定数を定義します。https://github.com/toono-f/gas-youyaku/blob/main/gas/common.jsfetchAndPostUnfinishedUrls.gsシートから取得したページの記事内容を要約し、Slackに投稿するまでの処理を実装します。https://github.com/toono-f/gas-youyaku/blob/main/gas/fetchAndPostUnfinishedUrls.jshandleSlackPostRequest.gsSlackからのイベント処理を実装します。APIを使用した要約処理を実装します。https://github.com/toono-f/gas-youyaku/blob/main/gas/fetchAIAnswerSummary.jsextractContent.gsWebページから記事の内容を抽出します。今回は、以下の記事で紹介されているextractContent.gsを利用させていただきます。Scriptのスクリプトプロパティを設定これまでの過程で取得した各値をスクリプトプロパティに登録します。GASのスクリプトを自動で実行するトリガーの作成fetchAndPostUnfinishedUrls関数のトリガーを設定し、スプレッドシートに新たなURLが追加された場合に実行されるようにします。Subscriptionsに、デプロイしたアプリケーションのURLを設定します。Botに、要約させたいページのURLをメンションします。すると間もなく、要約した文章を投稿してくれます。作成したスプレッドシートにもページURLやタイトル、要約文章が自動で追加されます。今回作成したBotは、Slackでメンションせずとも、スプレッドシートにURLを追加するだけでチャンネルに投稿してくれる仕様になっています。こちらの方法も試してみてください。ProのAPIを使用して、Slackで動作する記事要約Botを作成する方法を紹介しました。このBotを活用することで、チーム内の情報共有の効率化やアイデアの創出につながれば幸いです。株式会社LCLでは、フロントエンドエンジニア、バックエンドエンジニアそれぞれ採用中です!当社は、業界最大手の高速バス料金比較サイト「バス比較なび」や、LCCなど飛行機との比較ができる「格安移動」を運営しています。https://www.lclco.com/私たちは、一緒に成長していける仲間を募集しています。ご応募とカジュアル面談のお申し込み、それぞれお待ちしております。■採用情報https://www.lclco.com/recruit/■カジュアル面談https://www.lclco.com/recruit/casual/?jc=3234おとの株式会社LCLに所属。Web制作会社のコーダーから自社開発のフロントエンドエンジニアに転職しました。EngineersPublication業界最大手高速バス料金比較サイト「バス比較なび」や、LCCなど飛行機との比較ができる「格安移動」を運営している、株式会社LCLのエンジニアの個人記事です。Discussionおとの株式会社LCLに所属。Web制作会社のコーダーから自社開発のフロントエンドエンジニアに転職しました。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。