Xây dựng một Telegram BOT trong vòng 15 phút với PHP


Telegram là một ứng dụng chat nổi tiếng với ưu điểm bảo mật, nhanh, và miễn phí. Bạn cũng có thể sử dụng Telegram để tạo BOT nhận và gửi tin nhắn phục vụ cho những công việc tự động. Bài viết này sẽ hướng dẫn bạn khởi tạo một Telegram BOT bằng PHP trong vòng 15 phút.

TẠO BOT TELEGRAM

Đăng nhập vào Telegram sau đó tìm kiếm @BotFather

@BotFather{codeBox}
 

NHẬP LỆNH TẠO BOT

/newbot{codeBox}


 Mọi thứ khá đơn giản, bạn chỉ cần điền thông tin cho BOT như: Tên BOT, Username theo như hướng dẫn trong tin nhắn là xong.

Sau khi tạo BOT thành công, bạn sẽ nhận được mã Token dạng như bên dưới:

1390xxxxxxx:AAEfxxxxxxxxxxxxxxxxxLrfG1u0xxx94

CÀI ĐẶT WEBHOOK

Xây dựng một script PHP để nhận tin nhắn và gửi phản hồi lại telegram

Giả sử file PHP của bạn có địa chỉ: https://www.ritiensinh.com/chatbot/telegram.php


Bước 1: Yêu cầu lệnh cho BOT TELEGRAM

 Nói với telegram, ê sau này có ai chat với con BOT này thì mày chuyển hết data đến địa chỉ https://www.ritiensinh.com/chatbot/telegram.php  cho tao.

Thực hiện: Gửi một GET request đến địa chỉ:

https://api.telegram.org/bot[token bên trên]/setWebhook?url=https://www.ohay.tv/chatbot/telegram.php

Telegram phản hồi như bên dưới là thành công:

{"ok":true,"result":true,"description":"Webhook was set"}


Bước 2: Xây dựng kịch bản để xử lý tin nhắn và phản hồi

Lấy tin nhắn gửi từ telegram, lưu ý tham số $chatId, sử dụng tham số này để phản hồi đúng người

$update = json_decode(file_get_contents("php://input"), TRUE);
$chatId = $update["message"]["chat"]["id"];        
$message = $update["message"]["text"];

Đến đây, chúng ta chỉ việc so sánh $message và phản hồi kết quả tương ứng thông qua API sendMessage của Telegram

VD:

//Nếu tin nhắn có chứa ký tự /xinchao thì trả lời "Chào bạn, BOT có thể giúp gì? \n"
if (strpos($message, "/xinchao") === 0) {
    $response = "Chào bạn, BOT có thể giúp gì? \n";
}

//Để gửi tin nhắn phản hồi, bạn thực hiện POST request đến địa chỉ:
https://api.telegram.org/bot[token bên trên]/sendMessage?chat_id=[chatId bên trên]&text=[nội dung phản hồi]

Vậy là xong, bây giờ thử gõ /xinchao trên BOT để xem kết quả nhé

Đăng nhận xét

Bài cũ Bài mới