Node.jsのコードからSlackにメッセージを書き込む方法

2022-06-19

SlackにJavaScript(Node.js)にメッセージを書き込む方法を調べました(2022-06-18更新)

Slackへのメッセージの書き込み結果

次のような単純なコードでSlackの指定したチャンネルにメッセージを書き込むことができました。実際には SLACK_WEBHOOK_URL は環境変数で与えます。

const axios = require('axios');

const sendSlackMessage = async (message) => {
  const payload = {
    text: message,
  };
  try {
    await axios.post(SLACK_WEBHOOK_URL, payload);
  } catch (error) {
    console.log(error);
  }
};

sendSlackMessage('Hello World!');

手順

次の感じでやりました。

Slack Appの作成

  1. https://api.slack.com/apps より [Create New App]ボタンをクリックします。
  2. From scratchを選択します。
  3. App Name を指定します。例:Piko #4
  4. Pick a worksaplace to develo your app in: でSlackのワークスペースを選択します。例:Over 40 Web Club #4
  5. [Create App]ボタンをクリックします。

Slack Appの設定

  1. サイドバーのSettings / Basic Informationをクリックします。
  2. App-Level Tokens[Generate Token and Scopes]ボタンをクリックします。
  3. [Token Name]を設定します。例:Piko Token
  4. プルダウンでconnections:writeを選択します。
  5. [Generate]ボタンをクリックします。
  6. Piko Token[Done]ボタンをクリックします。
  7. Display InformationShort descriptionを指定します。例:Over 40 Bot
  8. App Iconを設定します。
  9. お好みで Background color を設定します。
  10. [Save Changes]ボタンをクリックします。
  11. サイドバーの[OAuth & Permissions]ボタンをクリックします。
  12. Bot Token Scopsのプルダウンでchat:writeを選択します。
  13. User Token Scopsのプルダウンでchat:writeを選択します。
  14. サイドバーの[Incoming Webhooks]ボタンをクリックします。
  15. Activate Incoming WebhooksOnにします。
  16. Features / Incoming Webhooks をクリックします。
  17. Activate Incoming WebhooksOnにします。
  18. [Add New Webhook to Workspace]ボタンをクリックします。
  19. 次のような感じでSlack AppSlackワークスペースにアクセスする権限リクエストが表示されるので、Slack Appの投稿先を選択の上[許可する]ボタンをクリックします。
    • Webhook URLが作成されるので[Copy]して、コードで指定します。
Slack AppのSlackワークスペースへのアクセス権限のリクエスト

SlackチャンネルへのAppの追加

  1. 該当するチャンネルの[チャンネル詳細を開く]を選択します。
  2. [インテグレーション]タブでアプリを追加します。
SlackチャンネルへのAppの追加