line bot แจ้งเตือนวันพระทุกวัน
การแจ้งเตือนวันพระทุกวัน
///อย่างแรก เตรียมข้อมูลในส่วนของ Mysql ก่อน
////////////// Mysql ///////
1.สร้าง Dabase Mysql ชื่อ Monk
2. นำฐานข้อมูลเข้า Database
USE `Monk`;
/*Table structure for table `mong_day` */
DROP TABLE IF EXISTS `mong_day`;
CREATE TABLE `mong_day` (
`id` int(3) NOT NULL auto_increment,
`name` varchar(300) character set utf8 NOT NULL,
`date_mong` date default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=tis620 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
/*Data for the table `mong_day` */
insert into `mong_day`(`id`,`name`,`date_mong`) values (1,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๔ ปีระกา','2561–02–22'),(2,'วันนี้วันพระ ตรงกับวันมาฆบูชา ขึ้น ๑๕ ค่ำ เดือน ๔ ปีระกา','2561–03–01'),(3,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๔ ปีระกา','2561–03–09'),(4,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือน ๔ ปีระกา','2561–03–16'),(5,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๕ ปีจอ','2561–03–24'),(6,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือน ๕ ปีจอ','2561–03–31'),(7,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๕ ปีจอ','2561–04–08'),(8,'วันนี้วันพระ แรม ๑๔ ค่ำ เดือน ๕ ปีจอ','2561–04–14'),(9,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๖ ปีจอ','2561–04–22'),(10,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือน ๖ ปีจอ','2561–04–29'),(11,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๖ ปีจอ','2561–05–07'),(12,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือน ๖ ปีจอ','2561–05–14'),(13,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๖ ปีจอ','2561–05–22'),(14,'วันนี้วันพระ ตรงกับวันวิสาขบูชา ขึ้น ๑๕ ค่ำ เดือน ๖ ปีจอ','2561–05–29'),(15,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๗ ปีจอ','2561–06–06'),(16,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือน ๗ ปีจอ','2561–06–12'),(17,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๗ ปีจอ','2561–06–20'),(18,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือน ๗ ปีจอ','2561–06–27'),(19,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๘ ปีจอ','2561–07–05'),(20,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือน ๘ ปีจอ','2561–07–12'),(21,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๘(หลัง) ปีจอ','2561–07–20'),(22,'วันนี้วันพระ ตรงกับวันอาสาฬบูชา ขึ้น ๑๕ ค่ำ เดือน ๘(หลัง) ปีจอ','2561–07–27'),(23,'วันนี้วันพระ ตรงกับวันเข้าพรรษา แรม ๑ ค่ำ เดือน ๘(หลัง) ปีจอ','2561–07–28'),(24,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๘ ปีจอ','2561–08–04'),(25,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือน ๘ ปีจอ','2561–08–11'),(26,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๙ ปีจอ','2561–08–19'),(27,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือน ๙ ปีจอ','2561–08–26'),(28,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๙ ปีจอ','2561–09–03'),(29,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือน ๙ ปีจอ','2561–09–09'),(30,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือน ๑๐ ปีจอ','2561–09–17'),(31,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือน ๑๑ ปีจอ','2561–09–24'),(32,'วันนี้วันพระ แรม ๘ ค่ำ เดือน ๑๐ ปีจอ','2561–10–02'),(33,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือนสิบ(๑๐) ปีจอ','2561–10–09'),(34,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือนสิบเอ็ด(๑๑) ปีจอ','2561–10–17'),(35,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือนสิบเอ็ด(๑๑) ปีจอ (วันออกพรรษา)','2561–10–24'),(36,'วันนี้วันพระ แรม ๘ ค่ำ เดือนสิบเอ็ด(๑๑) ปีจอ','2561–11–01'),(37,'วันนี้วันพระ แรม ๑๔ ค่ำ เดือนสิบเอ็ด(๑๑) ปีจอ','2561–11–07'),(38,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือนสิบสอง(๑๒) ปีจอ','2561–11–15'),(39,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือนสิบสอง(๑๒) ปีจอ (วันลอยกระทง)','2561–11–22'),(40,'วันนี้วันพระ แรม ๘ ค่ำ เดือนสิบสอง(๑๒) ปีจอ','2561–11–30'),(41,'วันนี้วันพระ แรม ๑๕ ค่ำ เดือนสิบสอง(๑๒) ปีจอ','2561–12–07'),(42,'วันนี้วันพระ ขึ้น ๘ ค่ำ เดือนอ้าย(๑) ปีจอ','2561–12–15'),(43,'วันนี้วันพระ ขึ้น ๑๕ ค่ำ เดือนอ้าย(๑) ปีจอ','2561–12–22'),(44,'วันนี้วันพระ แรม ๘ ค่ำ เดือนอ้าย(๑) ปีจอ','2561–12–30');
/////////////////////
//// ต่อมา code php ///
///หมายเหตุ user_id-1,user_id-2 เป็น line user id ได้มาจาก log สามารถเพิ่ม user_id ได้
<?php
//error_reporting(0);
//header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set("Asia/Bangkok");
$serverName = "localhost";
$userName = "username_db";
$userPassword = "password_db";
$dbName = "monk";
$connect = mysqli_connect($serverName,$userName,$userPassword,$dbName) or die ("connect error".mysqli_error());
mysqli_set_charset($connect, "utf8");
$query ="SELECT name,date_mong FROM mong_day WHERE MONTH(STR_TO_DATE(date_mong,'%Y-%m-%d'))= MONTH(NOW()) AND DAY(STR_TO_DATE(date_mong,'%Y-%m-%d'))= DAY(NOW()) ";
$resource = mysqli_query($connect,$query) or die ("error".mysqli_error());
$count_row = mysqli_num_rows($resource);
if($count_row > 0) {
while($result =mysqli_fetch_array($resource)){
$name = $result['name'];
$date =$result['date_mong'];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.line.me/v2/bot/message/multicast",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\r\n\r\n \"to\":[\"user_id-1\",\"user_id-2\",\"user_id-3\"],\r\n\r\n \"messages\": [{\r\n\r\n \"type\": \"flex\",\r\n\r\n \"altText\": \"วันนี้เป็นวันพระ ควรทำบุญใส่บาตร รักษาศีล\",\r\n\r\n \"contents\": \r\n{\r\n\"type\": \"bubble\",\r\n \"hero\": {\r\n \"type\": \"image\",\r\n \"url\": \"https://f.ptcdn.info/716/040/000/o3npyu1b2ovxUqEPxDb-o.jpg\",\r\n \"size\": \"full\",\r\n \"aspectRatio\": \"20:13\",\r\n \"aspectMode\": \"cover\",\r\n \"action\": {\r\n \"type\": \"uri\",\r\n \"uri\": \"https://f.ptcdn.info/716/040/000/o3npyu1b2ovxUqEPxDb-o.jpg\"\r\n }\r\n },\r\n \"body\": {\r\n \"type\": \"box\",\r\n \"layout\": \"vertical\",\r\n \"contents\": [\r\n {\r\n \"type\": \"text\",\r\n \"text\": \"วันนี้ วันพระ\",\r\n \"weight\": \"bold\",\r\n \"size\": \"xl\"\r\n },\r\n {\r\n \"type\": \"box\",\r\n \"layout\": \"baseline\",\r\n \"margin\": \"md\",\r\n \"contents\": [\r\n {\r\n \"type\": \"icon\",\r\n \"size\": \"sm\",\r\n \"url\": \"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png\"\r\n },\r\n {\r\n \"type\": \"icon\",\r\n \"size\": \"sm\",\r\n \"url\": \"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png\"\r\n },\r\n {\r\n \"type\": \"icon\",\r\n \"size\": \"sm\",\r\n \"url\": \"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png\"\r\n },\r\n {\r\n \"type\": \"icon\",\r\n \"size\": \"sm\",\r\n \"url\": \"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png\"\r\n },\r\n {\r\n \"type\": \"icon\",\r\n \"size\": \"sm\",\r\n \"url\": \"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png\"\r\n },\r\n {\r\n \"type\": \"text\",\r\n \"text\": \"คณะทำงานจริยธรรมสารสนเทศ\",\r\n \"size\": \"sm\",\r\n \"color\": \"#999999\",\r\n \"margin\": \"md\",\r\n \"flex\": 0\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"box\",\r\n \"layout\": \"vertical\",\r\n \"margin\": \"lg\",\r\n \"spacing\": \"sm\",\r\n \"contents\": [\r\n {\r\n \"type\": \"box\",\r\n \"layout\": \"baseline\",\r\n \"spacing\": \"sm\",\r\n \"contents\": [\r\n {\r\n \"type\": \"text\",\r\n \"text\": \" \",\r\n \"color\": \"#aaaaaa\",\r\n \"size\": \"sm\",\r\n \"flex\": 1\r\n },\r\n {\r\n \"type\": \"text\",\r\n \"text\": \"$name\",\r\n \"wrap\": true,\r\n \"color\": \"#666666\",\r\n \"size\": \"sm\",\r\n \"flex\": 5\r\n }\r\n ]\r\n }\r\n \r\n ]\r\n }\r\n ]\r\n }\r\n}\r\n }]\r\n\r\n}\r\n\r\n\r\n",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer line_token",
"cache-control: no-cache",
"content-type: application/json",
"postman-token: 71e40b26-87b8-5f38-477c-9bbb4cbffa88"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
}
}else{
//$results = '{"results":null}';
//echo "today have no ";
}
?>
//// เข้าไปที่ https://cron-job.org/
กำหนดให้ run code php ที่เราสร้างขึ้นทุกวัน
ความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบCURLOPT_POSTFIELDS => "{\r\n\r\n \"to\":[\"user_id-1\",\"
ตอบลบถ้าอยากส่งเป็นข้อความธรรมดา ไปหาแต่ละ user_id จะต้องมีรูปแบบอย่างไรครับ ดูแล้วผมปรับไม่ถูกครับ
CURLOPT_POSTFIELDS => "{\r\n\r\n \"to\": \"$userId\",\r\n\r\n \"messages\": [{\r\n\r\n \"type\": \"text\",\r\n\r\n \"text\": \"ข้อความ\"\r\n\r\n }]\r\n\r\n}",
ลบ