A modern async client library for Rust, supports Slack Web / Events API/Socket Mode and Block Kit.
Find a file
Nikolay Denev c0d9446f43
Add message_attachment container type to SlackInteractionActionContainer (#341)
The Slack API defines three container types for interaction payloads:
message, message_attachment, and view. The message_attachment type is
used when interactive Block Kit elements are placed inside legacy
secondary attachments (the ones with the colored side stripe).

This adds the missing MessageAttachment variant with its
SlackInteractionActionMessageAttachmentContainer struct, which
includes the attachment_id field (1-based integer identifying which
attachment contains the interactive element).

Reference: https://docs.slack.dev/reference/interaction-payloads/block_actions-payload/
2026-02-21 15:45:47 +01:00
.github/workflows chore(deps): update actions/checkout action to v6 (#337) 2026-01-05 13:14:46 +01:00
docs chore: Docs config update 2026-01-05 13:18:26 +01:00
examples fix: Compile error in an example (#336) 2025-10-17 13:59:47 +02:00
src Add message_attachment container type to SlackInteractionActionContainer (#341) 2026-02-21 15:45:47 +01:00
.gitignore vim dir to gitignore 2020-10-17 15:12:59 +02:00
Cargo.toml fix(deps): update rust crate rand to 0.10 (#340) 2026-02-17 14:19:51 +01:00
CNAME gh-pages workflow fix 2020-08-22 18:40:30 +03:00
CONTRIBUTING.md Update CONTRIBUTING.md 2022-11-03 10:13:01 +01:00
COPYRIGHT.md Compliance updates 2022-10-15 12:02:04 +02:00
LICENSE Docs/Cargo update 2020-08-09 16:12:47 +03:00
README.md Update README.md 2025-04-20 16:12:23 +02:00
renovate.json Add renovate.json 2020-08-22 15:57:31 +00:00
SECURITY.md Ver up in README 2024-12-09 19:03:50 +01:00

Cargo tests and formatting security audit

Slack Morphism for Rust

Slack Morphism is a modern client library for Slack Web/Events API/Socket Mode and Block Kit.

Documentation

Please follow to the official website: https://slack-rust.abdolence.dev.

Examples

https://github.com/abdolence/slack-morphism-rust/tree/master/examples

The examples require to work the following environment variables (from your Slack bot profile in api.slack.com):

  • SLACK_TEST_TOKEN - for Slack client example
  • SLACK_TEST_APP_TOKEN - for Slack client with Socket Mode example
  • SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, SLACK_BOT_SCOPE, SLACK_REDIRECT_HOST - for OAuth routes for Events API example
  • SLACK_SIGNING_SECRET for all routes for Events API example

To run example use with environment variables:

# SLACK_... cargo run --example <client|events_api_server|axum_events_api_server|socket_mode> --all-features

Routes for this example are available on http://:8080:

  • /auth/install - to begin OAuth installation
  • /auth/callback - a callback endpoint for Slack OAuth profile config
  • /push - for Slack Push Events
  • /interaction - for Slack Interaction Events
  • /command - for Slack Command Events

Testing Events API with ngrok

For development/testing purposes you can use ngrok:

ngrok http 8080

and copy the URL it gives for you to the example parameters for SLACK_REDIRECT_HOST.

Example testing with ngrok:

SLACK_CLIENT_ID=<your-client-id> \
SLACK_CLIENT_SECRET=<your-client-secret> \
SLACK_BOT_SCOPE=app_mentions:read,incoming-webhook \
SLACK_REDIRECT_HOST=https://<your-ngrok-url>.ngrok.io \
SLACK_SIGNING_SECRET=<your-signing-secret> \
cargo run --example events_api_server  --all-features

Licence

Apache Software License (ASL)

Author

Abdulla Abdurakhmanov

with the great help of contributors, particularly:

  • Naoki Ikeguchi (@siketyan)
  • David Rousselie (@dax)

and many others