Skip to content

ObjectIsAdvantag/DEVNET-3071

 
 

Repository files navigation

BotKit samples for Cisco Spark

This community project driven regroups:

  • Cisco Spark bot samples built with Howdy.ai BotKit framework,
  • a template to quickly bootstrap your bot project and reuse bot skills,
  • an experimental websocket usage example

We suggest you start with the Hello World bot below.

New to BotKit? Read the BotKit for CiscoSpark Guide

New to CiscoSpark? Read the Starter Guide we use at hackathon. Or go straight to Spark4Devs, signin and click My apps to create a bot account.

Hello World (bot command)

Simplest bot you can code: simply echoes a message with a mention of the Cisco Spark user that mentionned him.

hello-bot-direct

And don't forget to mention him in group rooms.

hello-bot-group

Note that the bot will respond to anyone mentioning him, then no reason why he could not chat with other bots. Below, the Hello bot (impersonnated via the Playground bot token) helling the CiscoDevNet bot.

hello-bot-playing

Assuming your bot is accessible from the internet or you exposed it via a tunneling tool such as ngrok, you can run any sample in a snatch:

How to run

From a bash shell, type:

> git clone https://github.com/CiscoDevNet/botkit-ciscospark-samples
> cd botkit-ciscospark-samples
> npm install
> SPARK_TOKEN=0123456789abcdef PUBLIC_URL=https://abcdef.ngrok.io SECRET="not that secret" node helloworld.js

From a windows shell, type:

> git clone https://github.com/CiscoDevNet/botkit-ciscospark-samples
> cd botkit-ciscospark-samples
> npm install
> set SPARK_TOKEN=0123456789abcdef
> set PUBLIC_URL=https://abcdef.ngrok.io
> set SECRET=not that secret
> node helloworld.js

where:

  • SPARK_TOKEN is the API access token of your Cisco Spark bot
  • PUBLIC_URL is the root URL at which Cisco Spark can reach your bot
  • SECRET is the secret that Cisco Spark uses to sign the JSON webhooks events posted to your bot
  • ngrok helps you expose the bot running on your laptop to the internet, type: ngrok http 8080 to launch

Bootstrap a BotKit project for Cisco Spark (template)

The template regroups a set of best practices:

  • configuration: pass settings either through environment variables on the command line, or by hardcoding some of them in the .env file. Note that env variable are priorized over the envfile if values are found in both places.
  • healthcheck: check if everything is going well by hitting the ping endpoint exposed automatically.
  • skills: organize your bot behaviours by placing 'hear commands', 'convos' and 'events' in the skills directory. The bot comes with a ".commons", "help", "fallback" and "welcome" skills.

Conversations demo bot (convo)

A conversational bot that illustrates BotKit conversation system through examples. The bot is built with the template provided in this repo.

You can test the bot live by inviting [email protected] to a Cisco Spark space.

convo

DevNet events (external api invocation)

This bot illustrates how you can create conversations, and uses a wrapper to an external API hosted on Heroku that lists current and upcoming events at DevNet.

devnet-botkit

Emoji (websocket)

This bot turns emoji tags to unicode characters and posts back the 'emojified' phrase

The bot leverages the experimental websocket library for CiscoSpark, so that you don't need to register a Webhook onto CiscoSpark, and expose your bot in the internet.

From a bash shell, type:

> npm install
> SPARK_TOKEN=0123456789abcdef node emoji.js

From a Windows shell, type:

> npm install
> set SPARK_TOKEN=0123456789abcdef
> node emoji.js

emoji

About

Cisco Spark bot samples built with BotKit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%