ringcentral-personal-chatbot

RingCentral personal chatbot framework.

Usage no npm install needed!

<script type="module">
  import ringcentralPersonalChatbot from 'https://cdn.skypack.dev/ringcentral-personal-chatbot';
</script>

README

ringcentral-personal-chatbot-js

RingCentral personal chatbot framework.

Quick start

First, need create a AWS account, we will use free AWS dynamodb, and put your aws credentials in ~/.aws/credentials, check https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html

Let's start a simple chatbot server and login to it with you sandbox glip account, and you account will auto respond to hello with Hi(any private message or message mentioned you).

# get the code
git clone git@github.com:ringcentral/ringcentral-personal-chatbot-js.git
cd ringcentral-personal-chatbot-js

# install dependecies
npm i

# start proxy server, this will make your local bot server can be accessed by RingCentral service
npm run ngrok

# will show
Forwarding                    https://xxxx.ap.ngrok.io -> localhost:6066
# Remember the https://xxxx.ap.ngrok.io, we will use it later

Login to developer.ringcentral.com and create Web-based App:

  • Application Type: Public
  • Platform Type: Browser-based
  • Carrier: accept the default values
  • Permissions Needed: Accounts, Contacts, Glip, Glip Internal, Read Accounts, Read Messages, Read Client Info, Read Contacts, Read Presence, Webhook Subscriptions
  • Set OAuth Redirect URI: Using your ngrok HTTPS URL from above, enter in the following value: https://xxxx.ap.ngrok.io/rc/oauth.

Click to create app

cp .env.sample .env
# then fill all required fields in .env, you can get client ID / secret from app setting

# run sample hello bot
npm start

# start client dev server
npm run c

Then visit https://xxxx.ap.ngrok.io to login, after auth, when someone talk to you with "hello"(any private message or message mentioned you), you will auto respond with "Hi".

Build and run in production

# build
npm run build

# run prodcution code
npm run p
# or
cross-env NODE_ENV=production node bin/rcpf.js example-bots/hello.js

# proxy for production code
npm run ngrok-p

Token renew

todo

Use as CLI tool

I will as simple as this:

npx ringcentral-personal-chatbot your-bot-file.js

Write a personal bot

docs/write-a-bot.md

Write/use a personal bot skill

docs/write-use-a-skill.md

Build-in commands

  • __test__: show bot info.

Origin

It is a project for RingCentral Xiamen Office 2019 Hackathon. It begin with Jakob Lewei's idea about fuzzy matching FAQ bot, then I decided to make it more generic: a bot framework for personal glip account.

Credits

It is based on the these projects, especially Tyler's work.

License

MIT