OOZOU
お問い合わせ
Back to TIL
shell

Send messages to Slack using cURL

2020年10月13日

Slack allows you to send messages via the Webhooks service

Create a webhook for any channel and then you can send notification using curl.

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

Setting Up Incoming Webhooks

Incoming webhooks are a simple way to post messages from apps into Slack. To set up an incoming webhook, you need to create a Slack app and enable incoming webhooks in the app settings. Here’s a step-by-step guide to setting up incoming webhooks:

  1. Log in to your Slack account and navigate to the Slack API main page.
  2. Click the “Create an app” button and select “From scratch.”
  3. Enter a name for your app and select the workspace where you want to deploy it.
  4. Click the “Create App” button.
  5. In the app settings, navigate to the “Features” section and click on “Incoming Webhooks.”
  6. Toggle the switch to enable incoming webhooks.
  7. Click the “Add New Webhook to Workspace” button.
  8. Select the channel where you want to post messages and click “Allow.”

By following these steps, you can create a Slack app and set up an incoming webhook to start sending messages to your chosen channel.

Creating a Payload

To send a message via an incoming webhook, you need to create a payload that contains the message text and some options. Here’s how to create a payload:

  1. Determine the content type of your payload. For incoming webhooks, the content type is always “application/json.”
  2. Create a JSON object that contains the message text and any additional options you want to include. For example: 1.
{ "text": "Hello, Slack!", "username": "WebhookBot", "icon_emoji": ":ghost:" }
  1. Use a tool like curl to send the payload to the incoming webhook URL.

By creating a properly formatted JSON payload, you can ensure that your message is correctly sent to Slack via the incoming webhook.

Sending Messages with cURL

cURL is a command-line tool that you can use to send messages to Slack via an incoming webhook. Here’s an example of how to use cURL to send a message:

  1. Open a terminal and navigate to the directory where you want to send the message
  2. Create a file with a .json extension that contains the payload. For example, create a file named message.json with the following content: 1.
{ "text": "Hello, World!" }
  1. Use the cURL command to send the payload to the incoming webhook URL: 1.
curl -X POST -H 'Content-Type: application/json' --data @message.json https://hooks.slack.com/services/YOUR/TOKENIZED/URL

By following these steps, you can use cURL to send a message to Slack via an incoming webhook.

Testing and Troubleshooting

When testing and troubleshooting incoming webhooks, it’s essential to check the HTTP status code and response body for any errors. Here are some common errors you may encounter:

  • HTTP 400 Bad Request: The payload is malformed or missing required fields.
  • HTTP 403 Forbidden: The incoming webhook URL is invalid or no longer available.
  • HTTP 404 Not Found: The channel or workspace does not exist.

To troubleshoot issues, you can use tools like cURL to send test payloads and inspect the response. Additionally, you can check the Slack API documentation for more information on error codes and troubleshooting.

Advanced Slack Integration

Incoming webhooks are just one way to integrate with Slack. For more advanced integrations, you can use the Slack API to send and receive messages, create custom bots, and more. Here are some advanced Slack integration features:

  • Web API: The Slack Web API allows you to send and receive messages, create custom bots, and more.
  • Events API: The Slack Events API allows you to receive real-time updates on events such as messages, reactions, and more.
  • Botkit: Botkit is a framework for building custom bots on Slack.

By using these advanced features, you can create more sophisticated integrations with Slack and automate workflows, enhance user experience, and more.

More on shell

shell2020年12月8日

Run incognito/private commands for Bash and Zsh

Simply put a space before the command and it won't be saved to ~/.bash\_history. E.g. qrencode -o out.png "Some secret text"

shell2020年10月22日

Upgrade postgres database with homebrew

To upgrade postgres you can run

shell2020年10月13日

Amazon AWS S3 CLI copy with set perms

Open term (or equivalent) and paste the following:

プロジェクトをお考えですか?

あなたが構築しているものについてお聞かせください。

会話を始めるhello@oozou.com
OOZOU Logo

バンコク · シンガポール · 香港

X
Facebook
Instagram
LinkedIn

サービス

  • ウェブ開発
  • AI・生成AIソリューション
  • モバイルアプリ開発
  • データ分析・エンジニアリング
  • UI/UXデザイン・プロダクトデザイン
  • デジタルトランスフォーメーション

会社情報

  • 会社概要
  • 採用情報
  • ブログ
  • ホワイトペーパー
  • 事例研究
  • Today I Learned
  • お問い合わせ

その他

  • 業界
  • 見積もりを取得
  • パートナーネットワーク
© 2026 OOZOU. All rights reserved.
プライバシーポリシー行動規範ABACポリシー