Author: Esteban Posada | Email: [email protected] | Copyright: Adobe 2017
Status: In Progress
Chat bots have been one of the most innovative, trending and useful applications that are being developed nowadays. Technology companies are allowing third party developers to create their own bots in top of their messaging applications. Some examples are Facebook and Slack.
Although these companies are offering APIs to be able to interact with their services, the process of communicating with their products and all the details that need to be set up are still tricky and hard to get it all right.
This framework provides the power of You focus on the bot’s functionality, the framework handles the server setup and management 😅.
- Basic Javascript Experience.
- Set up and install OpenWhisk:
- Install the OpenWhisk CLI:
brew install shaftoe/wsk/wsk
. (check by running:wsk -v
) - Create, if not already, the
~/.wskprops
file with your OpenWhisk info (auth, api host, namespace) . (Important).
- Install the OpenWhisk CLI:
- Download and Install Node.js and npm. (get node and npm at once.)
NOTE: make sure you follow the requirements before moving on!
1. Fork this project into your project folder.
2. Create the Slack App:
- Proceed to this link, to create a new Slack App.
- Type a name for your app, select your Slack team.
- Click Create App.
3. Add a Bot User: (this will let us create the bot)
- Go to the Bot Users under Features.
- Click Add a Bot User.
- Name your bot and click Add Bot User.
- Click Save Changes.
4. Now, we will set up the Request URLs (these URLs will be use by Slack to call us when either an event, authentication and/or command was invoked)
- Under Settings click on Basic Information.
- Notice under App Credentials the Client ID, Client Secret and Verification Token. We will need these information in a moment, so keep this window open.
- Go to Terminal (CLI) and inside the folder where all the project files are:
* run:
```bash
make run
```
* In **Type the option number:** type: **1**
This is how the execution of `make run` (option setup) will look like:
```bash
**-macOS:Test **$ make run
Set up your bot production ecosystem!
Please type one of the following options:
1. setup
2. install
3. update-commands
4. update-distribution
5. update-events
6. delete-build-files
Type the option number: 1
setting up OpenWhisk and OW actions...
creating identification files for your new bot...
----------------OW PROJECT--------------------
Enter your OW main (without namespace and/or package) end-point for web actions: <https://<example-preview.company.xyz>/api/v1/web/>
Enter the name of your OW namespace: <your OW namespace>
Enter the name of your bot project (package name): <project name>
You package names is: "<project name>". Please remember this name!
----------------OW PROJECT--------------------
----------------BOT INFORMATION---------------
Enter the Verification Token: <your bot Verification Token>
Enter the Client ID: <your bot Client ID>
Enter the Client Secret: <your bot Client Secret>
Enter a secret state (will be used to prevent attacks, please remember this state): <chose a secret state string [and remember it!]>
----------------BOT INFORMATION---------------
----------------USEFUL LINKS------------------
Events link: <events link>
Auth link: <authentication link>
Commands link: <commands link>
----------------USEFUL LINKS------------------
We are done setting up everything, please continue following the instructions.
```
-- Note that it will also ask for a *secret state*. This will use to avoid attacks, so please keep it secret, but remember it yourself as we will need it later in this tutorial.
5. Back to the Slack API Page we are currently in, under Features, go to Event Subscriptions.
-
Turn ON the Enable Events and under Request URL type the link that was output to the console and says Events link.
-
NOTE: inmediately after you copy this link, it should show a green word saying: Verified
-
Under Subscribe to Team Events click on Add Team Event and add the event: message:im
- NOTE: this is the sample event we are adding to our bot!
-
Click on the Save Changes button at the bottom right corner of the page.
NOTE: if not, make sure you copy the link correctly. If not, email us. Email at the end of this file.
6. Now, under Features, OAuth & Permissions, Request URLs, click Add a new Redirect URL and type the link that was output to the console and says Auth link.
- Click Add.
- Finish by clicking on Save URLs.
7. Now, under Features, Slash Commands, click on Create New Command:
-
In the text box for Command type:
/parrot
-
In the text box for Request URL type the link that was output to the console and says Commands link. NOTE: This URL will be the same for every command you create!
-
In the text box for Short Description type something like:
repeats what you typed
-
In the text box for Usage Hint type the arguments the user will need to type after the command, if any.
-
Click Save in the bottom right corner of the screen.
8. Now, we will install everything we need to run the sample command and event in your Slack Team as well as to allow you to create your own later!
-
Go to Terminal (CLI) and inside the folder where all the project files are:
-
run:
make run
-
In Type the option number: type: 2
This is how the execution of
make run
(option install) will look like:**-macOS:Test **$ make run Set up your bot production ecosystem! Please type one of the following options: 1. setup 2. install 3. update-commands 4. update-distribution 5. update-events 6. delete-build-files Type the option number: 2 installing required actions and files...
-
9. Now, in order to try the sample command and event do the following:
-
Go back again to the Slack API Webpage
-
Under Settings go to Install App
-
Click on the green button that says: Install App.
- This will install the bot in your team and will allow you to test it FINALLY! 👏
10. Congrat's your bot is created, lets test it!
-
Go to your Slack App and you will now be able to see your new bot under Apps.
-
Test Command: Type to your new bot:
/parrot Hello World!
, it should reply:Hi <your slack username> you said "Hello World!"
-
Test Event: Type to your new bot:
Hello Bot!
, it should reply:Hey There!!!
Thanks for taking the time to read through this tutorial! We hope this was useful, we are always trying to make your life as a developer easier.
-
- Post and Issue in this link
- Email us to [email protected]
-
- Contributors are welcomed! Read the Contributing Guide for more information.
-
- This project is licensed under the Apache V2 License. See License for more information.
-
- Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.