Skip to main content

ringcentral-chatbot-python-ext-bot-info

Simple ringcentral chatbot python extension that add bot info command support.

screen

Table of contents

Prerequisites

  • Python3.6+ and Pip3
  • Nodejs 8.10+/npm, recommend using nvm to install nodejs/npm
  • Create the bot App: Login to developer.ringcentral.com and create an public Server/Bot app with permissions: ReadContacts, ReadMessages, ReadPresence, Contacts, ReadAccounts, SMS, InternalMessages, ReadCallLog, ReadCallRecording, WebhookSubscriptions, Glip

Quick start

# use virtualenv
pip3 install virtualenv # might need sudo

# init virtual env
virtualenv venv --python=python3

# use env
source ./venv/bin/activate

# install deps
pip install -r requirements.txt
npm i

# run ngrok proxy
# since bot need https server,
# so we need a https proxy for ringcentral to visit our local server
./bin/proxy
# will show:
# Forwarding https://xxxxx.ngrok.io -> localhost:8989

# create env file
cp .sample.env .env
# then edit .env, set proper setting,
# and goto your ringcentral app setting page, set OAuth Redirect URI to https://https://xxxxx.ngrok.io/bot-oauth
RINGCENTRAL_BOT_SERVER=https://xxxxx.ngrok.io

## for bots auth required, get them from your ringcentral app page
RINGCENTRAL_BOT_CLIENT_ID=
RINGCENTRAL_BOT_CLIENT_SECRET=

# run local dev server
./bin/start

Test bot

Building and Deploying to AWS Lambda

AWS Lambda with API Gateway and DynamoDB would give us a flexible way to deploy the bot.

*Be aware that AWS Lambda ONLY works in linux on an x64 architecture. For non-linux os, we need docker to build dependencies, should install docker first.

Get an AWS account, create aws_access_key_id and aws_secret_access_key and place them in ~/.aws/credentials, like this:

[default]
aws_access_key_id = <your aws_access_key_id>
aws_secret_access_key = <your aws_secret_access_key>

For more information, refer to https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html

cp dev/lambda/serverless.sample.yml devlambda/serverless.yml

Edit lambda/serverless.yml, and make sure you set the proper name and required env.

# you can define service wide environment variables here
  environment:
    NODE_ENV: production
    # ringcentral apps

    ## bots
    RINGCENTRAL_BOT_CLIENT_ID:
    RINGCENTRAL_BOT_CLIENT_SECRET:

    ## common
    RINGCENTRAL_SERVER: https://platform.devtest.ringcentral.com
    RINGCENTRAL_BOT_SERVER: https://xxxx.execute-api.us-east-1.amazonaws.com/default/poc-your-bot-name-dev-bot

    # db
    DB_TYPE: dynamodb
    DYNAMODB_TABLE_PREFIX: rc_bot2
    DYNAMODB_REGION: us-east-1

Deploy to AWS Lambda with bin/deploy

# install serverless related modules
npm i

# Run this cmd to deploy to AWS Lambda, full build, may take more time
bin/deploy

## watch Lambda server log
bin/watch
  • Create API Gateway for your Lambda function, shape as https://xxxx.execute-api.us-east-1.amazonaws.com/default/poc-your-bot-name-dev-bot/{action+}
  • Make sure your Lambda function role has permission to read/write dynamodb(Set this from AWS IAM roles, could simply attach AmazonDynamoDBFullAccess and AWSLambdaRole policies to Lambda function's role)
  • Make sure your Lambda function's timeout more than 5 minutes
  • Do not forget to set your RingCentral app's redirect URL to Lambda's API Gateway URL, https://xxxx.execute-api.us-east-1.amazonaws.com/default/poc-your-bot-name-dev-bot/bot-oauth for bot app.

The bot create process

create

License

MIT

Metadata

Release files for ringcentral-bot-framework-extension-botinfo 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ringcentral-bot-framework-extension-botinfo 0.0.1
File Size Uploaded
ringcentral_bot_framework_extension_botinfo-0.0.1.tar.gz 4.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ringcentral-bot-framework-extension-botinfo 0.0.1
File Interpreter ABI Platform
ringcentral_bot_framework_extension_botinfo-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 8.9 kB

Release files / ringcentral_bot_framework_extension_botinfo-0.0.1.tar.gz

Download URL ringcentral_bot_framework_extension_botinfo-0.0.1.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
37e20eaa887c9c767986a41fa1399703bef4135180b67106124a606209e80bcc
BLAKE2b-256 checksum
How to use checksums
c2ceb53d85ee290c6842992242b8794bc6b7159f8201b459762edfa3b8d47401
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

Release files / ringcentral_bot_framework_extension_botinfo-0.0.1-py3-none-any.whl

Download URL ringcentral_bot_framework_extension_botinfo-0.0.1-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2fae525eb70186978c6afebd26df73559a08b3c32e2ab6e70d819bc05c2d888e
BLAKE2b-256 checksum
How to use checksums
62aa9ed24093335935a7b7dbb8d6547addd0cfd9375c44944711e95095c9ed91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

Release history Release notifications | RSS feed

0.4.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page