wa-chat-server-telegram
wa-chat-server-telegram is a wa-chat-server adapter for the Telegram messenger.
Create a Telegram Bot
- Contact BotFather from your Telegram messenger.
- Type
/newbot
and answer the questions. - Save the token for further use.
Adapter Usage
Register The Adapter
An initialization of the wa-chat-server (in a chat application using wa-chat-server to communicate with Watson Assistant) with a wa-chat-server-telegram adapter looks like this:
require('dotenv').config();
import { WAChatServer, Types } from 'wa-chat-server';
import { WAChatServerTelegramAdapter } from 'wa-chat-server-telegram';
const server: WAChatServer = new WAChatServer((process.env as any) as Types.IWAChatServerConfig);
server.addAdapter('telegram', WAChatServerTelegramAdapter);
server.serve();
Configure The Adapter
The application environment (e. g. in .env
) must have adapter__telegram__token
.
Local Development
HTTP Tunnel Setup
For local development we need to set up a secure tunnel localhost and Telegram. We can use ngrok for this purpose:
ngrok http 3023
opens a tunel and gives us a public HTTPS URL to be used by Telegram (without an ngrook account the lifetime of the tunnel will be 2 hours). We must then use the Telegram API to configure this URL in Telegram:
export ENDPOINT="[NGROK_URL]"; export TOKEN=[BOT_TOKEN]; curl -X POST -H "Content-Type:application/json" -d "{\"url\":\"$ENDPOINT/adapters/telegram\"}" "https://api.telegram.org/bot$TOKEN/setwebhook"
We may inspect the communication tunneled by ngrok to localhost on http://localhost:4040.
IMPORTANT: Don't do it for a Telegram bot that is already attached to some server installation. Create your own Telegram bot instead.
Transpilation
Run
npm run dev
Linking The Library to The Chat Project
Run
npm link
from the wa-chat-server-telegram root folder.
and then
npm link wa-chat-server-telegram
from the root of your chat application.