tamtam-bot-api

TamTam Bot API

Usage no npm install needed!

<script type="module">
  import tamtamBotApi from 'https://cdn.skypack.dev/tamtam-bot-api';
</script>

README

TamTam Bot API

Build Status NPM download NPM version Minzipped size Bot API LICENSE

Lightweight tree-shakable customizable module to interact with TamTam Bot API with full Typescript support

Requirements

To use TamTam Bot API you should obtain ACCESS_TOKEN for each bot you create

Interact with @PrimeBot to create your first bot

Install

To install the stable version:

npm install --save tamtam-bot-api

This assumes you are using npm as your package manager.

Usage

To make your first request just provide API token to createAPI function or set TAMTAM_API_TOKEN env variable

const { createAPI } = require('tamtam-bot-api');

createAPI(/* TAMTAM_API_TOKEN */)
    .getMyInfo()
    .then(console.log)
    .catch(console.error);

HTTP Library

Default version uses axios to make HTTP requests

If you are using other HTTP library you can run

npm install --save --no-optional tamtam-bot-api

Then provide your own http implementation to createAPI function

Echo bot example

A Simple bot that will respond to your messages with the same text using polling of getUpdates method

import { createAPI, Update } from 'tamtam-bot-api';

const api = createAPI(/* TAMTAM_API_TOKEN */);

let MARKER = 0;

function startPolling() {
    api.getUpdates({ marker: MARKER }).then(({ updates, marker }) => {
        MARKER = marker || MARKER;

        updates.forEach((update: Update) => {
            if (update.update_type === 'message_created') {
                const { body, sender } = update.message;

                api.sendMessage({ text: body?.text }, { user_id: sender?.user_id });
            }
        });

        startPolling();
    });
}

startPolling();

You can play with example on RunKit: long polling, web hook endpoint

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

This project licensed under the Apache 2.0.