training day 3
วันที่ 13 มิ.ย.2561
ตัวอย่างแรกเราทำ อวยพรวันเกิด และการเชิญเข้ากลุ่ม
///con_db.php///
<?php
$Setup_Server = 'localhost';
$Setup_User = 'root';
$Setup_Pwd = '';
$Setup_Database = 'births';
mysql_connect($Setup_Server,$Setup_User,$Setup_Pwd);
mysql_query("use $Setup_Database");
mysql_query("SET NAMES UTF8");
//mysql_query("SET NAMES TIS620");
?>
//////////
1. sql
//////////////
/*
SQLyog Enterprise - MySQL GUI v8.14
MySQL - 5.5.5-10.1.32-MariaDB : Database - birth
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`birth` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `birth`;
/*Table structure for table `contacts` */
DROP TABLE IF EXISTS `contacts`;
CREATE TABLE `contacts` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`name` varchar(300) CHARACTER SET utf8 NOT NULL,
`position` varchar(300) CHARACTER SET utf8 NOT NULL,
`email` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
`mobile` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`telephones` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`id_position` int(4) DEFAULT NULL,
`birth` date DEFAULT NULL,
`id_group` int(2) DEFAULT NULL,
`level` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=tis620 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
/*Data for the table `contacts` */
insert into `contacts`(`id`,`name`,`position`,`email`,`mobile`,`telephones`,`id_position`,`birth`,`id_group`,`level`) values (1,'santi sukdee','ผู้บังคับบัญชากลุ่มงาน','aaa@gmail.com','089-999-9999','02-244-2000',1000,'2520-06-13',50,12),(2,'chokdee mechai','นักวิชาเกิน','bbb@gmail.com','083-333-3333','02-244-3000',2000,'2521-11-11',50,11),(3,'panuwat santinum','นักวิชาเกิน','ccc@gmail.com','084-444-4444','02-244-4000',3000,'2522-10-10',50,11);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
///////////////
**** อย่าลืมแก้ฟิลด์ birth ให้เป็นวันที่ตรงกับวันที่ test ด้วย จะได้เห็นผล
2. //bot.php///
<?php
//error_reporting(0);
header('Content-type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
date_default_timezone_set('Asia/Bangkok');
$servername ="localhost";
$username = "root";
$password = "";
$dbname = "birth";
$now = new DateTime();
//include('con_db.php');
$conn = mysqli_connect("localhost","root","","birth");
//$sql = "select * from contacts";
$sql = "SELECT *,DATE_FORMAT(birth,'%d/%m/%Y') AS births,2560-YEAR(birth) AS ages ,DATE_FORMAT(birth,'%d/%m/%Y') AS birthday,CONCAT(' HAPPY BIRTHDAY ขอให้ ',NAME,' มีความสุขมาก และมีสุขภาพแข็งแรงน่ะครับ ') AS happy
FROM contacts
WHERE MONTH(STR_TO_DATE(birth,'%Y-%m-%d'))= MONTH(NOW()) AND
DAY(STR_TO_DATE(birth,'%Y-%m-%d'))= DAY(NOW()) ";
$resource = mysqli_query($conn,$sql) or trigger_error(mysqli_error($conn));
$count_row = mysqli_num_rows($resource);
if($count_row > 0) {
while($result =mysqli_fetch_array($resource)){
$name = $result['name'];
$birthday =$result['birthday'];
// $age = $result['age'];
$happy = $result['happy'];
$message = "Happy birthday ".' '.$name.' '.' %E0%B8%82%E0%B8%AD%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B8%A1%E0%B8%B5%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%AA%E0%B8%B8%E0%B8%82%20%E0%B9%80%E0%B8%88%E0%B8%A3%E0%B8%B4%E0%B8%8D%E0%B9%83%E0%B8%99%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%87%E0%B8%B2%E0%B8%99%20%E0%B8%A1%E0%B8%B5%E0%B8%AA%E0%B8%B8%E0%B8%82%E0%B8%A0%E0%B8%B2%E0%B8%9E%E0%B8%A3%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A2%E0%B9%81%E0%B8%82%E0%B9%87%E0%B8%87%E0%B9%81%E0%B8%A3%E0%B8%87%20%20%E0%B8%84%E0%B8%B4%E0%B8%94%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3%E0%B8%81%E0%B9%87%E0%B8%82%E0%B8%AD%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B8%AA%E0%B8%A1%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%9B%E0%B8%A3%E0%B8%B2%E0%B8%A3%E0%B8%96%E0%B8%99%E0%B8%B2%E0%B8%99%E0%B9%88%E0%B8%B0%E0%B8%84%E0%B8%A3%E0%B8%B1%E0%B8%9A';
}
// $message = $_REQUEST['message'];
$chOne = curl_init();
curl_setopt( $chOne, CURLOPT_URL, "https://notify-api.line.me/api/notify");
// SSL USE
curl_setopt( $chOne, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt( $chOne, CURLOPT_SSL_VERIFYPEER, 0);
//POST
curl_setopt( $chOne, CURLOPT_POST, 1);
// Message
curl_setopt( $chOne, CURLOPT_POSTFIELDS, $message);
//ถ้าต้องการใส่รุป ให้ใส่ 2 parameter imageThumbnail และimageFullsize
curl_setopt( $chOne, CURLOPT_POSTFIELDS, "message=$message&imageThumbnail=https://image.makewebeasy.com/makeweb/0/n1wnGFxuP/migrate/maxresdefault.jpg&imageFullsize=https://image.makewebeasy.com/makeweb/0/n1wnGFxuP/migrate/maxresdefault.jpg");
// follow redirects
curl_setopt( $chOne, CURLOPT_FOLLOWLOCATION, 1);
//ADD header array
$headers = array( 'Content-type: application/x-www-form-urlencoded', 'Authorization: Bearer token', );
curl_setopt($chOne, CURLOPT_HTTPHEADER, $headers);
//RETURN
curl_setopt( $chOne, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec( $chOne );
//Check error
if(curl_error($chOne)) { echo 'error:' . curl_error($chOne); }
else { $result_ = json_decode($result, true);
echo "status : ".$result_['status']; echo "message : ". $result_['message']; }
//Close connect
curl_close( $chOne );
}else{
//$results = '{"results":null}';
}
?>
***** ใส่ token ของเรา
/////
ตัวอย่างที่ 2 การทำ bot แจ้งเตือนวันพระ
2.1 sql
/////////////////
/*
SQLyog Enterprise - MySQL GUI v8.14
MySQL - 5.0.27-community-nt : Database - mycontacts
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`mycontacts` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `birth`;
/*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-06-13'),(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-25'),(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');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/////////////
2.bot_mong_day.php
///////////////
<?php
//header('Content-type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
include('con_db.php');
//$sql = "select * from contacts";
$sql = "SELECT * 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 = mysql_query($sql);
$count_row = mysql_num_rows($resource);
if($count_row > 0) {
while($result =mysql_fetch_array($resource)){
$name = $result['name'];
//$birthday =$result['birthday'];
//$age = $result['age'];
//$happy = $result['happy'];
$message = " ".' '.$name.' '.' ';
//echo '<iframe src="line_it_mong.php?message='.$message.' "></iframe>';
$chOne = curl_init();
curl_setopt( $chOne, CURLOPT_URL, "https://notify-api.line.me/api/notify");
// SSL USE
curl_setopt( $chOne, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt( $chOne, CURLOPT_SSL_VERIFYPEER, 0);
//POST
curl_setopt( $chOne, CURLOPT_POST, 1);
// Message
curl_setopt( $chOne, CURLOPT_POSTFIELDS, $message);
//ถ้าต้องการใส่รุป ให้ใส่ 2 parameter imageThumbnail และimageFullsize
curl_setopt( $chOne, CURLOPT_POSTFIELDS, "message=$message&imageThumbnail=https://i.pinimg.com/originals/33/7a/6e/337a6ee29c0d330ca69060952843d345.jpg&imageFullsize=https://i.pinimg.com/originals/33/7a/6e/337a6ee29c0d330ca69060952843d345.jpg");
// follow redirects
curl_setopt( $chOne, CURLOPT_FOLLOWLOCATION, 1);
//ADD header array
$headers = array( 'Content-type: application/x-www-form-urlencoded', 'Authorization: Bearer token', );
curl_setopt($chOne, CURLOPT_HTTPHEADER, $headers);
//RETURN
curl_setopt( $chOne, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec( $chOne );
//Check error
if(curl_error($chOne)) { echo 'error:' . curl_error($chOne); }
else { $result_ = json_decode($result, true);
echo "status : ".$result_['status']; echo "message : ". $result_['message']; }
//Close connect
curl_close( $chOne );
}
}else{
//$results = '{"results":null}';
}
?>
*** ใส่ token ของเรา แทน token
/////////////
การตั้งค่าให้ทำงานอัตโนมัติ ใช้ ngrok
1.https://cron-job.org/
2.task ของ windows
3.สั่งผ่าน line chatbot abdul
///// การทำ Rich menu ////////
1.เข้า ไปที่ https://developers.line.me/ -> greeting messages -> set message หรือ https://admin-official.line.me/ เลือก rich contents
https://drive.google.com/open?id=1sbCnipnerB1ATV1bLAIRt4jF9lPlkO2L
TXRQ1xQsNKslFxE9NvZHE9Zs8w3zuqyxtDmHOdAE0Hz
ถ้ามีคนเกิดพร้อมกัน 2 คนทำไงครับ ผมเขียนแล้วมันแจ้งเตือนคนเดียว
ตอบลบ