mirror of
https://github.com/System-End/slack-morphism-rust.git
synced 2026-04-20 00:25:23 +00:00
A modern async client library for Rust, supports Slack Web / Events API/Socket Mode and Block Kit.
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/ |
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| examples | ||
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| CNAME | ||
| CONTRIBUTING.md | ||
| COPYRIGHT.md | ||
| LICENSE | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
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 exampleSLACK_TEST_APP_TOKEN- for Slack client with Socket Mode exampleSLACK_CLIENT_ID,SLACK_CLIENT_SECRET,SLACK_BOT_SCOPE,SLACK_REDIRECT_HOST- for OAuth routes for Events API exampleSLACK_SIGNING_SECRETfor 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