You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This module can be used to build a bot for Cisco Spark that only uses outbound connections (useful if you want to run the bot from behind a firewall where inbound webhook connections are not possible). Two types of outbound connections are used - a websocket connection for the bot to receive notifications of events and REST API calls to the Spark service to retrieve messages, etc.
Getting Started
Prerequisites
Python's async features (async/await) are used, so requires Python 3.6 (tested with Python 3.6.2)
pipenv is used to manage requirements. As long as you have pipenv installed you should just need to run pipenv install to install all the dependencies.
If you want to install the dependencies manually, you should only need the following packages from PyPI:
uuid
ciscosparkapi
websockets
Usage
Example
An example of how this can be used is included in example-echobot.py but the simplest example is:
fromciscosparkwebsocketimportCiscoSparktoken='<REPLACE WITH YOUR TOKEN FROM developer.ciscospark.com>'defon_message(message):
# TODO: handle the message received by the bot. Below just echos the message back to the senderspark.spark.messages.create(roomId=message.roomId, text=message.text)
spark=CiscoSpark(token=token, on_message=on_message)
spark.run()
Notes
CiscoSpark.run() starts the event loop so will not return until the bot exits.
CiscoSpark.spark is an instance of ciscosparkapi - a simple, lightweight, scalable Python API wrapper for the Cisco Spark APIs and can be used to respond to messages, etc. (In the example above it is used to create the reply message).
Acknowledgements
The Cisco Spark websocket API is not publicy documented, so this is based on the NodeJS implementation here.