Python package for a Webex Bot based on websockets.
Project description
Introduction
By using this module, you can create a Webex Teams messaging bot quickly in just a couple of lines of code.
This module does not 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.
- Restrict bot to certain users or domains.
- 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. (#1)
0.1.6 (2021-03-25)
- Send ack on websocket message received. (#2)
0.1.7 (2021-03-26)
- Minor cleanup.
- Log bot email on startup.
0.1.8 (2021-05-04)
- Fetch incoming message ID as base64.
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.8.tar.gz
(16.6 kB
view hashes)
Built Distribution
Close
Hashes for webex_bot-0.1.8-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee30d37925dbbe57ccb30cefbc728651024560d0a13261b54bca86cf6c7d5aed |
|
MD5 | fcd3532038afa5a48d04739c7e9e80e6 |
|
BLAKE2b-256 | 0d3501dd7831ca2e85aa0990c7a0db73c297a48dbc19397e4fff368bba3163a5 |