Deprecated: A simple API to create and control Telegram bots
Go to file
2015-07-03 17:36:07 +04:30
build Add BulkMessage Type 2015-07-03 17:36:07 +04:30
classes V2 - Big update 2015-06-29 03:12:48 +04:30
lib Add BulkMessage Type 2015-07-03 17:36:07 +04:30
types Add BulkMessage Type 2015-07-03 17:36:07 +04:30
.gitignore initial commit 2015-06-26 21:50:54 +04:30
demo.gif smaller GIF 2015-06-27 04:50:25 +04:30
demo.js remove my key 2015-07-03 02:21:34 +04:30
esdoc.json V2 - Big update 2015-06-29 03:12:48 +04:30
Gruntfile.js V2 - Big update 2015-06-29 03:12:48 +04:30
index.js V2 - Big update 2015-06-29 03:12:48 +04:30
LICENSE Initial commit 2015-06-26 03:04:01 +04:30
package.json Add BulkMessage Type 2015-07-03 17:36:07 +04:30
README.md Add BulkMessage Type 2015-07-03 17:36:07 +04:30

Telegram Bots

Create and control Telegram bots easily using the new Telegram API.

telegram-api is in beta, your feedback is appreciated, please fill an issue for any bugs you find or any suggestions you have.

npm install telegram-api

If you are cloning this repository, remember to run npm install to install dependencies.

The code is well documented. I'm trying to integrate JSDoc / ESDoc into our repository for an easy to access documentation.


If you are using babel/polyfill and you get an error requiring this modules, try:

require('telegram-api/build');

This will bypass the babel/polyfill required by the module.


All Telegram API methods are accessible through api property of bots.

bot.api.sendPhoto({
  chat_id: 99999,
  photo: 'some_id',
  caption: 'dancing monkey'
});

Some API methods have been simplified using what we call types. See the example below.

Example

@JavaScriptBot runs on demo.js, you can test it.

var Bot = require('telegram-api');

// only require the message types you need, more coming soon!
var Message = require('telegram-api/types/Message');
var Question = require('telegram-api/types/Question');

var bot = new Bot({
  token: 'YOUR_KEY'
});

bot.start().catch(err => {
  console.error(err, '\n', err.stack);
});

// polling
bot.on('update', update => {
  console.log('Polled\n', update);
});

const question = new Question({
  text: 'How should I greet you?',
  answers: [['Hey'], ['Hello, Sir'], ['Yo bro']]
});

bot.get(/Hi\sBot/, message => {
  const id = message.chat.id;

  question.to(id).reply(message.message_id);

  bot.send(question).then(answer => {
    const msg = new Message().to(id).text('Your answer: ' + answer.text);
    bot.send(msg);
  }, () => {
    const msg = new Message().to(id).text('Invalid answer');
    bot.send(msg);
  });
});

const hello = new Message().text('Hello');
bot.command('start', message => {
  bot.send(hello.to(message.chat.id));
});

const test = new Message().text('Test Command');
bot.command('test', message => {
  bot.send(test.to(message.chat.id));
});

This will result in:

@JavaScriptBot

Bots using this module

@JavaScriptBot

Todo

  • Webhook support
  • Forward Type
  • BulkMessage Type
  • File Type
  • Sticker Type
  • Location Type
  • Contact Type
  • Allow remote control of bots (TCP maybe)
  • YOUR IDEAS! Fill an issue