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. Fixes #1
0.1.6 (2021-03-25)
- Send ack on websocket message received. Fixes #2
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.6.tar.gz
(16.0 kB
view hashes)
Built Distribution
Close
Hashes for webex_bot-0.1.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0713d6a5eee415360492ad22c8011182c5b11b47f325e1b51b50431aff17da5 |
|
MD5 | a441dee9b4545b9fa9eb30b387ee8199 |
|
BLAKE2b-256 | f06e909626582e9531b41439fbb775feabc1555d44dd6145110e445019c405d6 |