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 ที่เราสร้างขึ้นทุกวัน

ความคิดเห็น

  1. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  2. CURLOPT_POSTFIELDS => "{\r\n\r\n \"to\":[\"user_id-1\",\"
    ถ้าอยากส่งเป็นข้อความธรรมดา ไปหาแต่ละ user_id จะต้องมีรูปแบบอย่างไรครับ ดูแล้วผมปรับไม่ถูกครับ

    ตอบลบ
    คำตอบ
    1. 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}",

      ลบ

แสดงความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การทำ cloud iot ด้วย thingsboard ไว้ใช้เองครับ

การประยุกต์ใช้ line notify ในการแจ้งปัญหาการใช้งาน สำหรับ php

Send message to line when server down with python Line api (มอนิเตอร์ server แจ้งเตือนผ่าน Line)