---
title: "cURLでSlackにメッセージを送信する"
description: "Slackでは、Webhooksサービス経由でメッセージを送信できます"
canonical: https://oozou.com/til/send-messages-to-slack-using-curl-26
locale: ja
date: 2020-10-13
topic: shell
---

# cURLでSlackにメッセージを送信する

> Slackでは、Webhooksサービス経由でメッセージを送信できます

Published: 2020-10-13 · Topic: [shell](https://oozou.com/ja/til-topics/shell) ([markdown](https://oozou.com/ja/til-topics/shell.md))

Slackでは、[Webhooksサービス](https://api.slack.com/incoming-webhooks)経由でメッセージを送信できます

任意のチャンネルに対してWebhookを作成すれば、curlで通知を送信できます。

```shell
$ curl -X POST -H 'Content-type: application/json' --data '{"text": "Something important"}'  https://hooks.slack.com/services/YOUR/TOKENIZED/URL
```

# Incoming Webhookの設定

Incoming Webhookは、アプリからSlackにメッセージを投稿するシンプルな方法です。Incoming Webhookを設定するには、Slackアプリを作成し、アプリ設定でIncoming Webhookを有効にする必要があります。設定手順は次のとおりです。

1. Slackアカウントにログインし、Slack APIのメインページに移動します。
2. 「Create an app」ボタンをクリックし、「From scratch」を選択します。
3. アプリの名前を入力し、デプロイ先のワークスペースを選択します。
4. 「Create App」ボタンをクリックします。
5. アプリ設定の「Features」セクションに移動し、「Incoming Webhooks」をクリックします。
6. スイッチを切り替えてIncoming Webhookを有効にします。
7. 「Add New Webhook to Workspace」ボタンをクリックします。
8. メッセージを投稿したいチャンネルを選択し、「Allow」をクリックします。

以上の手順で、Slackアプリを作成してIncoming Webhookを設定し、選んだチャンネルへのメッセージ送信を始められます。

# ペイロードの作成

Incoming Webhook経由でメッセージを送信するには、メッセージテキストといくつかのオプションを含むペイロードを作成する必要があります。ペイロードの作成方法は次のとおりです。

1. ペイロードのコンテンツタイプを決めます。Incoming Webhookの場合、コンテンツタイプは常に「application/json」です。
2. メッセージテキストと、含めたい追加オプションを持つJSONオブジェクトを作成します。例：
   1. 

```json
{ "text": "Hello, Slack!", "username": "WebhookBot", "icon_emoji": ":ghost:" }
```

3. curlなどのツールを使って、Incoming WebhookのURLにペイロードを送信します。

正しくフォーマットされたJSONペイロードを作成することで、メッセージがIncoming Webhook経由でSlackに確実に送信されるようにできます。

# cURLでメッセージを送信する

cURLは、Incoming Webhook経由でSlackにメッセージを送信するのに使えるコマンドラインツールです。cURLでメッセージを送信する例を示します。

1. ターミナルを開き、メッセージを送信したいディレクトリに移動します
2. ペイロードを含む .json 拡張子のファイルを作成します。たとえば、次の内容で message.json という名前のファイルを作成します。
   1. 

```json
{ "text": "Hello, World!" }
```

3. cURLコマンドを使って、Incoming WebhookのURLにペイロードを送信します。
   1. 

```shell
curl -X POST -H 'Content-Type: application/json' --data @message.json https://hooks.slack.com/services/YOUR/TOKENIZED/URL
```

以上の手順で、cURLを使ってIncoming Webhook経由でSlackにメッセージを送信できます。

# テストとトラブルシューティング

Incoming Webhookのテストやトラブルシューティングでは、HTTPステータスコードとレスポンスボディでエラーを確認することが重要です。よくあるエラーは次のとおりです。

- **HTTP 400 Bad Request**：ペイロードの形式が不正か、必須フィールドが欠けています。
- **HTTP 403 Forbidden**：Incoming WebhookのURLが無効か、利用できなくなっています。
- **HTTP 404 Not Found**：チャンネルまたはワークスペースが存在しません。

問題を調査するには、cURLなどのツールでテスト用のペイロードを送信し、レスポンスを確認します。また、エラーコードやトラブルシューティングの詳細については、Slack APIのドキュメントも参照できます。

# 高度なSlack連携

Incoming WebhookはSlackと連携する方法のひとつにすぎません。より高度な連携には、Slack APIを使ってメッセージの送受信やカスタムボットの作成などができます。高度なSlack連携の機能をいくつか紹介します。

- **Web API**：Slack Web APIを使うと、メッセージの送受信やカスタムボットの作成などができます。
- **Events API**：Slack Events APIを使うと、メッセージやリアクションなどのイベントの更新をリアルタイムで受け取れます。
- **Botkit**：BotkitはSlack上でカスタムボットを構築するためのフレームワークです。

これらの高度な機能を使えば、Slackとのより洗練された連携を構築し、ワークフローの自動化やユーザー体験の向上などが実現できます。

---

Contact OOZOU: hello@oozou.com · +66 2544 0000 · https://oozou.com/ja/contact

More for AI agents: https://oozou.com/llms.txt · every page has a markdown twin at its URL plus ".md"
