GASで簡単!Slackメッセージにハイパーリンクを埋め込む方法

Slackのメッセージにハイパーリンクを埋め込みたいんですが、手作業では面倒で…。GASを使って自動化できたら最高なんですけど。
猫男
猫男
catman
catman
GASが得意分野だ。catmanがGASを使ってSlackメッセージにハイパーリンクを埋め込む方法を教えてやろう!

GASでSlackのAPIを利用してハイパーリンクを埋め込む準備

GASを使ってSlackにハイパーリンクを埋め込みたい場合、まずSlack APIを利用するための準備が必要です。SlackのワークスペースでAppを作成し、適切な権限を設定してトークンを取得しましょう。

Slack Appの作成と設定

Slack Appを作成するためには、Slackの公式サイトでアプリを作成する必要があります。以下の手順で設定を行います。

1. SlackのAPIページから「Create New App」を選択します。

2. アプリ名と開発するワークスペースを選びます。

3. 「OAuth & Permissions」で必要なスコープを設定し、トークンを取得します。

GASプロジェクトのセットアップ

GASでSlack APIを使えるようにするために、プロジェクトを作成してスクリプトを記述します。

1. Google Spreadsheetを開き、拡張機能から「Apps Script」を選択します。

2. Slack APIに必要なスコープをプロジェクト内で設定します。

 

Appの作成とトークンの準備ができました!次はどうしたらいいでしょう?
猫男
猫男
catman
catman
次はスクリプトを書いて、メッセージにハイパーリンクを埋め込む準備だ。やり方を見せよう!

 

GASでSlackメッセージにハイパーリンクを埋め込む方法

GASを使ってSlackメッセージにハイパーリンクを埋め込むためのスクリプトの基本構造を紹介します。

ハイパーリンク付きメッセージの送信スクリプト

以下は、Slackにハイパーリンクを埋め込むためのスクリプトの例です。


function sendSlackMessage() {
  const url = "https://slack.com/api/chat.postMessage";
  const token = 'xoxb-your-slack-token';
  const channel = '#your-channel';
  const message = "こちらをクリックして詳細をご確認ください: <https://example.com|詳細はこちら>";
 
  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + token
    },
    payload: JSON.stringify({
      channel: channel,
      text: message
    })
  };

  UrlFetchApp.fetch(url, options);
}

UrlFetchApp.fetchメソッドを使ってHTTPリクエストを送信します。

メッセージ内に<URL|表示テキスト>の形式でハイパーリンクを指定します。

 

おお、これでSlackでリンクが埋め込まれたメッセージを送れるんですね!実際に送信してみます。
猫男
猫男

練習問題

以下の条件でSlackメッセージを送信するGASスクリプトを作成してください。

  • リンク先: https://docs.google.com
  • 表示テキスト: Google Docs
  • 送信先チャンネル: #general

  

解答・解説

以下は、練習問題の解答例です。


function sendDocsLinkToSlack() {
  const url = "https://slack.com/api/chat.postMessage";
  const token = 'xoxb-your-slack-token';
  const channel = '#general';
  const message = "こちらのリンクをご確認ください: <https://docs.google.com|Google Docs>";
 
  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + token
    },
    payload: JSON.stringify({
      channel: channel,
      text: message
    })
  };

  UrlFetchApp.fetch(url, options);
}

解説: このスクリプトは、Slack APIのchat.postMessageを使用して、指定したチャンネルにメッセージを送信します。メッセージ内のハイパーリンクは<URL|表示テキスト>の形式で指定します。

catman
catman
これでSlackのメッセージにハイパーリンクを埋め込めるようになったようだな。GASを使えば、自動化も簡単にできるさ。
ありがとうございます、catmanさん!これで業務も効率化できそうです。
猫男
猫男

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。