Viết API để gửi tin nhắn với telegram bot

Có hai việc chính:
– Tạo một con bot bằng cách chat với BotFather
– Viết api
Các công cụ cần thiết:
– Tài khoản telegram
– Nodejs và các gói liên quan, trong đó có gói telegram-node-bot
– Server để deploy api chạy ngày chạy đêm.
Tham khảo từ:
https://core.telegram.org/bots
https://www.npmjs.com/package/telegram-node-bot
Bắt đầu:
Tạo bot bằng cách chat với BotFather, đáng ra phải là BotMother chứ nhỉ :))
/start
/newbot
Chọn tên cho bot, không bắt buộc có chữ bot ở trong tên này
Chọn username cho bot, bắt buộc có chữ bot trong tên này.
Ok xong, bạn sẽ thấy một cái token để ném vào trong code.
Tạo file ping.js


'use strict'
var tg = require('telegram-node-bot')('YOUR_TOKEN')
tg.router.
when(['ping'], 'PingController')
tg.controller('PingController', ($) => {
tg.for('ping', () => {
console.log($);
$.sendMessage('pong')
})
})

Nhớ thay chỗ YOUR_TOKEN bằng token mà BotFather gửi cho bạn.
Ok, cho chạy đê node ping.js
Chat với bot, gõ ping gửi cho bot, log sẽ xuất hiện thông tin của user_id hoặc group_id mà bạn đang chat, tóm lấy nó – chính là cái chatId
Screenshot from 2016-05-20 14:38:33
Giờ mới đến phần chính, tạo file my_api.js


var express = require("express");
var app = express();
function handle_telegram(req, res) {
var msg = req.param('msg');
console.log('Send to Telegram: ' + msg);
var tg = require('telegram-node-bot')('telegram-token')
var date = new Date();
var currentTime = new Date().toString();
tg.sendMessage(your_id, msg);
res.end('ok');
}
app.get("/toTelegram", function(req, res) {
handle_telegram(req, res);
});
app.listen(3000);

view raw

telegram-api.js

hosted with ❤ by GitHub

Chạy nào: node my_api.js
Paste link này vào trình duyệt:
http://localhost:3000/toTelegram?msg=tinnhan
Trên telegram bạn sẽ nhận được tin nhắn với nội dung tinnhan. Xong.

4 thoughts on “Viết API để gửi tin nhắn với telegram bot”

  1. Chào bạn Thai PH
    Rất cảm ơn bạn về bài viết.
    Hiện tại mình đang muốn thiết lập 1 BOT trên Telegram để báo giá. Bạn vui lòng có thể giúp mình thiết lập. Đây là BOT dành cho kinh doanh nên rất cần đến bàn tay giúp sức của bạn.
    Mình đặt hàng từ bạn nghĩa là phải có chi phí tương ứng.
    Rất mong nhận được phản hồi của bạn sớm nhất.
    Chúc bạn mọi điều tốt lành!

    Reply

Leave a Reply