wa-chat-server-telegram
TypeScript icon, indicating that this package has built-in type declarations

0.3.8 • Public • Published

wa-chat-server-telegram

wa-chat-server-telegram is a wa-chat-server adapter for the Telegram messenger.

Create a Telegram Bot

  1. Contact BotFather from your Telegram messenger.
  2. Type /newbot and answer the questions.
  3. 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

We must set the following environment variables (e. g. in .env):

Variable Obligatory Meaning
adapter__telegram__token Y The Bot token generated by the BotFather
adapter__telegram__apiUrl Y The Telegram endpoint, typically https://api.telegram.org)
adapter__telegram__callbackUrl Y The endpoint to be called by Telegram (without the path adapters/telegram
adapter__telegram__webhookLifetimeS N The Telegram webhook lifetime in seconds. Whenever the lifetime is reached a new webhook URL (containing a random token) is generated. 0 by default which means "generate URL only once at application startup"

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.

Package Sidebar

Install

npm i wa-chat-server-telegram

Weekly Downloads

2

Version

0.3.8

License

ISC

Unpacked Size

29 kB

Total Files

12

Last publish

Collaborators

  • ibmjanneme
  • boris.podskalicky
  • matej.palenik