Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Telegram Bots for KyivJS

Telegram Bots for KyivJS

Avatar for Andrei Sierkov

Andrei Sierkov

February 11, 2017

More Decks by Andrei Sierkov

Other Decks in Programming

Transcript

  1. Creating Bot var TelegramBot = require('node-telegram-bot-api'),
 telegram = new TelegramBot("YOUR_BOT_TOKEN",

    { polling: true });
 
 telegram.on("text", (message) => {
 telegram.sendMessage(message.chat.id, "Hello world");
 });
  2. Creating Bot function getReply(text) {
 if (text.includes('ничо')) {
 return 'Вот

    и хорошо';
 } else if (text.includes('/start')) {
 return 'Давай, расскажи мне о своих проблемах.';
 } else {
 return 'И чо?';
 }
 }
 
 telegram.on("text", (message) => {
 const text = message.text.toLowerCase();
 const reply = getReply(text);
 telegram.sendMessage(message.chat.id, reply, {
 parse_mode: "Markdown"
 });
 });
  3. Support Bot // Telegram sent message telegram.on("text", (message) => {


    const text = message.text;
 const id = message.chat.id;
 let chat = chats[id];
 if (!chat && text === '/support') {
 chats[id] = chat = {
 from: message.from,
 messages: []
 }
 } else if (chat && text === '/end_support') {
 chats[id] = chat = undefined;
 }
 if(chat) {
 chat.messages.push({ sender: 0, text });
 }
 syncToBrowser();
 });
  4. Support Bot wsServer.on('request', function(request) {
 let connection = request.accept(null, request.origin);


    connections.push(connection);
 connection.sendUTF(JSON.stringify(chats));
 
 // Browser sent message
 connection.on('message', function(message) {
 const { id, text } = JSON.parse(message.utf8Data);
 const chat = chats[id];
 if (!chat) { return; }
 
 chat.messages.push({ sender: 1, text });
 telegram.sendMessage(id, text);
 });
 });