Python package for a Webex Bot based on websockets.
Project description
Introduction
By using this module, you can create a Webex bot extremely quickly in just a couple of lines of code.
Some other packages require you to set up an ngrok tunnel to receive incoming messages when behind a firewall or inside a LAN. This package instead uses a websocket to receive messages from the Webex cloud.
Features
- Uses the websockets module to receive incoming messages, thus avoiding the need to have a public IP or use incoming webhooks.
- Simply add 'commands' which are just strings which instruct the bot to perform some action and reply with some result.
- Allows for single or multi-post responses. This is useful if you want to reply with a lot of data, but it won't all fit in a single response.
- Uses the webexteamssdk package to send back replies from the bot.
Getting started
- Install this module from pypi:
pip install webex_bot
- On the Webex Developer portal, create a new bot token and expose it as an environment variable.
export WEBEX_TEAMS_ACCESS_TOKEN=<your bots token>
- Run your script:
python example.py
See example.py for details:
import os
from webex_bot.webex_bot import WebexBot
# Create a Bot Object
bot = WebexBot(teams_bot_token=os.getenv("WEBEX_TEAMS_ACCESS_TOKEN"))
def send_echo(message, teams_message):
"""
Sample command function that just echos back the sent message
:param message: message with command already stripped
:param teams_message: teams_message object. Get more info about the message received from this. e.g.
room_id = teams_message.roomId
user_email = teams_message.personEmail
raw_message = teams_message.text
:return: a string. Or a List of strings. If you return a list of strings, each will be sent in
an individual reply to the user.
"""
return message
# Add new commands for the bot to listen out for.
# bot.add_command(command, help_message, function_to_call)
bot.add_command("/echo", "Send me back the message I sent you as a demo.", send_echo)
# Call `run` for the bot to wait for incoming messages.
bot.run()
- Now, just interact 1-1 with the bot. Send it a message with the text:
/echo hello there
and you will see the reply.
History
0.1.2 (2021-03-15)
- First release on PyPI.
0.1.4 (2021-03-23)
- Better retry on websocket connection failure
- Added support for approved domains
- Other cleanup
0.1.5 (2021-03-23)
- Retry websocket connection on socket.gaierror
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
webex_bot-0.1.5.tar.gz
(15.8 kB
view details)
Built Distribution
File details
Details for the file webex_bot-0.1.5.tar.gz
.
File metadata
- Download URL: webex_bot-0.1.5.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb1b2f562768c0cd15de9ff23255f8bbc13fd0211bd32aa9817c3e4a6f333627 |
|
MD5 | fac355fcd776d53c0f9eca0faf4ee712 |
|
BLAKE2b-256 | 781f01e282c9f88cd17cf1e3ed565e560370becada8b85f0f54b93c65e9dc8ab |
File details
Details for the file webex_bot-0.1.5-py2.py3-none-any.whl
.
File metadata
- Download URL: webex_bot-0.1.5-py2.py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 030a4c246ac7dcf3babe20db9de93c15aa7a592f3a4f10951304d4682f0194f1 |
|
MD5 | e5f6798ca60b4d67a925d32f140489c7 |
|
BLAKE2b-256 | 7f74e2f34a3712c612c36b17c3c1edf42e9fb392eb312e96836791806c48b719 |