This repository is deprecated; please follow the main search page or use the ‘Related code repos’ widget on the right side of the current page.

Cisco DevNet community Webex bot

Cisco Webex Teams Bot that fetches the latest from blog, github and meetup.
Runs every hour (default) and stores the latest URL also in a database.

Demo

Python script

Features

Modules supported

Database used

default config

(for the modules)

# Enable modules to fetch data and create Webex Adaptive Cards
# Comment module if you want to disable a module
modules:
    # URL to Cisco DevNet blog
    blog:
      - https://blogs.cisco.com/developer
    # Github.com org name
    github:
        orgs:
          - ciscodevnet
    # BrightTALK
    brighttalk:
      - 17628
    # Meetup group name
    meetup:
      - cisco-developers-club-stockholm

If you want to edit these URLs, for the modules.
Then clone this repo and edit config.yaml

Technologies & Frameworks Used

Cisco Products & Services:

  • Cisco Webex Teams

Third-Party Products & Services:

  • REST API
    • Github
    • Meetup
    • BrightTALK

Tools & Frameworks:

  • python
  • docker
  • webexteamssdk

Installation

Prerequisites

You can create the DynamoDB Table with --init flag

  • Database structure
{
    "AttributeName": "type",
    "KeyType": "HASH"
},
{
    "AttributeName": "link",
    "KeyType": "RANGE"
}

docker

Start service
docker run -d \
-e AWS_ACCESS_KEY_ID=changeme \
-e AWS_SECRET_ACCESS_KEY=changeme \
-e AWS_DEFAULT_REGION=eu-north-1 \
-e WEBEX_TEAMS_ACCESS_TOKEN=changeme \
-e WEBEX_TEAMS_ROOM_ID=changeme \
robertcsapo/cisco-devnet-sweden-community-webex-bot
OS Environment and help section
usage: run.py [-h] [--config CONFIG] [--table TABLE] [--init] [--delay DELAY] [--force] [--dry] [--debug] [--version]

Cisco DevNet community Webex bot

optional arguments:
  -h, --help       show this help message and exit
  --config CONFIG  Read different config file (default: config.yaml)
  --table TABLE    AWS DynamoDB Table (default: cisco-devnet-webex-bot)
  --init           Initialize database (default: False)
  --delay DELAY    Change delay in seconds (default: 3600)
  --force          Force update on latest from modules (default: False)
  --dry            Dry-run doesn't post anything to Webex (default: False)
  --debug          Display OS/ARGs settings (default: False)
  --version        show program's version number and exit
Example
docker run -it --rm robertcsapo/cisco-devnet-sweden-community-webex-bot --config config.yaml --debug

docker-compose

Clone the repo
git clone https://github.com/robertcsapo/cisco-devnet-community-webex-bot
Edit config.yaml
vim config.yaml
Start service (cloud image)
docker-compose -f docker-compose.yaml up
Start service (local image build)
docker-compose -f docker-compose-build.yaml up

Customization

Cisco Webex Teams Adaptive Card

Warning!

Changing the Cisco Webex Teams Adaptive Card template could cause this script to not work properly.

Design

You can design your own Adaptive Cards, to be used with Cisco Webex Teams here
(More details about how adaptive cards works can be found here)

Edit the source code

Replace your own designed adaptive card in the card.json file.
Then you need to match all the data objects in the cisco/webex.py file.

    ''' Read in Adaptive Card template '''
    with open('card.json') as file:
        data = json.load(file)

    ''' Below changes the data on Adaptive Card Template '''

Edit from here

''' Avatar Image URL for Card '''
data["content"]["body"][0]["columns"][0]["items"][0]["url"] = value["avatar"]

...
Stop editing here

''' ActionURL for Card '''
data["content"]["body"][3]["actions"][0]["url"] = value["url"]

Save the cisco/webex.py file.

Build with local changes

Local image build

Authors & Maintainers

Smart people responsible for the creation and maintenance of this project:

License

This project is licensed to you under the terms of the Cisco Sample
Code License
.

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Products

    Webex
  • Programming Languages

    Python
  • License

    Other

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.