1. วิธีการติดตั้งแอป Telegram หรือ วิธีหา botToken และ chat_id
1.1. ติดตั้งแอป Telegram และสมัครใช้งาน ในมือถือหรือคอมพิวเตอร์
1.2. ค้นหา BotFather ใน Google หรือแอป Telegram ก็ได้
1.3. คลิกลิงก์ Contact @BotFather
1.4. คลิก “start” ปุ่มสีฟ้า ในแอป Telegram
1.5. พิมพ์ข้อความในช่องแชท “/newbot”
1.6. ตั้งชื่อ Bot ในช่องแชท เช่น “ต้นแจ้งเตือน Bot”
1.7. ตั้ง usernameBot ในช่องแชท เช่น b0912345678bot
1.8. Copy BotToken หลังข้อความ “HTTP API:”
1.9. คลิกลิงก์ “t.me/b0xxxxxxxxxbot”
1.10. คลิก “start” ปุ่มสีฟ้า ใน Chat “ต้นแจ้งเตือน Bot”
1.11. วาง Token แล้วส่งให้ Chat “ต้นแจ้งเตือน Bot”
2. วิธีหา chat_id ของคุณ
2.1 ไปที่ URL นี้ (แทนที่ YOUR_BOT_TOKEN ด้วย Token ของคุณ)
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates
เช่น
https://api.telegram.org/bot123456789:ABCdefGHIjklMNOpqRstUVWxyz/getUpdates
2.2. คุณต้องคัดลอกข้อมูล JSON ที่ได้จาก URL นี้มาให้ผมดู หรือคุณสามารถค้นหาเองได้โดยมองหาส่วนที่มี "chat" และ "id" เช่น
{
"ok": true,
"result": [
{
"update_id": 123456789,
"message": {
"message_id": 1,
"from": {
"id": 987654321,
"is_bot": false,
"first_name": "YourName",
"username": "yourusername"
},
"chat": {
"id": 987654321,
"first_name": "YourName",
"username": "yourusername",
"type": "private"
},
"date": 1710000000,
"text": "Hello"
}
}
]
}
จากตัวอย่างด้านบน chat_id ของคุณคือ 987654321
2.3. ถ้า chat_id กลุ่มอาจจะเป็น เช่น -123456789 เช่น
"chat": {
"id": -123456789,
"title": "My Group",
"type": "supergroup"
}
3. ถ้ายังไม่ได้ติดตั้ง yii2-httpclient.ให้ติดดตั้งหรือ Run cmd
composer require yiisoft/yii2-httpclient
4. สร้างไฟล์ common/components/Telegram.php และเขียนโค้ด
<?php
namespace common\components;
use Yii;
use yii\base\Component;
use yii\httpclient\Client;
class Telegram extends Component
{
public function sendMessage($message, $botToken, $chatId, $options = [])
{
$url = "https://api.telegram.org/bot{$botToken}/sendMessage";
$data = array_merge([
'chat_id' => $chatId,
'text' => $message,
'parse_mode' => 'HTML' // 🔥 กำหนดค่าเริ่มต้นเป็น HTML
], $options);
$client = new Client();
$response = $client->createRequest()
->setMethod('POST')
->setUrl($url)
->setData($data)
->send();
return $response->isOk;
}
}
5. เพิ่ม Telegram เข้าไปใน components ของ common/config/main.php
return [
'components' => [
'telegram' => [
'class' => 'common\components\Telegram',
],
],
];
6. โค้ดที่หน้า view หรือ controllers
Yii::$app->telegram->sendMessage(
'<a href="https://www.youtube.com">URL</a> \nสวัสดีครับ',
'botToken' => '123456789:ABCdefGHIjklMNOpqRstUVWxyz', // ใส่ Token ของคุณ
'YOUR_CHAT_ID', // ใส่ Chat ID ที่ต้องการส่งข้อความหา
['parse_mode' => 'HTML']
);
ใส่ความเห็น