Skip to main content

Simplified serverless Slack bot interactions

Project description

Utility library for serverless Slack apps

PyPI

This is a (currently very simple) library that eases development of serverless Slack app and bots.

Currently, it targets Google Cloud Platform (but is easily generalised), and provides a decorator and some utility functions that make Slack signature verification automatic and help with building responses in a very lightweight fashion.

I will grow it with things I end up needing in my work, but if you have different needs and want to extend the library to support them, then PRs would be gratefully received!

MVP Example

This will accept any slash command you've configured for your bot, and just greet the user who calls it, tagging them in the reply.

from slack_serverless import slack_slash_command_gcp
from slack_messaging import slack_in_channel_text_response, slack_tags

@slack_slash_command_gcp(slack_signing_key=YOUR_SIGNING_KEY)
def command_handler(payload):
    return slack_in_channel_text_response(f"Hi there <@{slack_tags([payload['user_id']])}>")

Other Cloud Providers

Things will be a bit more manual here (but I'll happily add comfort wrappers if there's enough call and a PR that contributes them 😉).

The easiest thing to do is use the slack_slash_command decorator, which is similar to the gcp one above but needs you pass in a couple of Callables the code will use to get access to the data in a provider-specific way.

Take a look at the code in slack_serverless.py for examples to get you started.

Developing

Don't forget to set up pre-commit if you're developing things, especially if you plan to push a PR.

Legal Mumbo-Jumbo

Copyright (c)2023 Ross Bamford (and contributors)

License: MIT (see LICENSE.md for details).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slack-serverless-2023.1005a0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slack_serverless-2023.1005a0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file slack-serverless-2023.1005a0.tar.gz.

File metadata

  • Download URL: slack-serverless-2023.1005a0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for slack-serverless-2023.1005a0.tar.gz
Algorithm Hash digest
SHA256 7ef27394ea2e2cf59f8d6de85d4ce89c13ed934c5c0fdb88e6feb946c3871778
MD5 e35689e7c773816b60dc839fcf8303ee
BLAKE2b-256 8e48e08ddb747046a55e3338f8c9470dac893e7a1dc59a08223f2d96da1de689

See more details on using hashes here.

File details

Details for the file slack_serverless-2023.1005a0-py3-none-any.whl.

File metadata

File hashes

Hashes for slack_serverless-2023.1005a0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ad936b034458a125a9d695502aa47a69a4c381b3c886041bb5add4acdaa25ac
MD5 8a1f80879955ca84ffa8e953855db232
BLAKE2b-256 c61f9cd0f254e1af5789421f25e8d76853a5290e23a5425c5b07f9e446a063a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page