แจ้งเตือนCovidด้วย Line notify กับ PHP

Nonzakiz
2 min readApr 1, 2020

--

ไม่รู้เขียนทำไมแต่ก็อยากเขียน

เห็นกรมควบคุมโรคเขาแจก API ของโควิท ลิ้ง https://covid19.th-stat.com/ จึงเอามาเขียนแจ้งเตือนในกลุ่มครอบครัวเล่นๆ โดยใช้ php และ Cron ในการแจ้งเตือน

โดยเราจะเลือกใช้ Curl ในการดึงข้อมูลออกมาดังนี้

$cv = curl_init();// ตั้ง Url สำหรับดึงข้อมูล 
curl_setopt($cv, CURLOPT_URL, “https://covid19.th-stat.com/api/open/today");

ตั้ง หัวเป็น utf-8 สักหน่อย ค่าได้ไม่ต่างด้าว

header (‘Content-type: text/html; charset=utf-8’);

หลังจากนั้นแปลงค่าที่ส่งมาเป็น String

curl_setopt($cv, CURLOPT_RETURNTRANSFER, 1);// ตัวแปร $output เก็บข้อมูลทั้งหมดที่ดึงมา 
$output = curl_exec($cv);

ซึ่งค่าที่ออกมาจะเป็น json เราจึงต้องมาทำการ decode ก่อนดังนี้

$js_array=json_decode($output, true);

จากนั้นมาเซ็ทค่าสำหรับแจ้งเตือนไลน์ โดยค่า token ต้องไปขอจาก https://notify-bot.line.me/th/ ก่อนนะ แล้วก็แอดเพื่อน LINE Notify มันด้วย

$notifyURL = “https://notify-api.line.me/api/notify";
$accToken = “ใส่ Token จากไลน์”;
$headers = array(
‘Content-Type: application/x-www-form-urlencoded’,
‘Authorization: Bearer ‘.$accToken
);

สร้างรูปแบบของข้อความที่แจ้งเตือนในไลน์กลุ่ม

$data = array(
‘message’ => ‘
รายงานสถานการณ์โควิท
ผู้ติดเชื้อ : ‘.$js_array[‘Confirmed’].’ คน
เสียชีวิต : ‘.$js_array[‘Deaths’].’ คน
หายแล้ว : ‘.$js_array[‘Recovered’].’ คน
รักษาตัว : ‘.$js_array[‘Hospitalized’].’ คน
เวลาล่าสุด : ‘.$js_array[‘UpdateDate’].’’ );

จากนั้นก็ใส่โค้ด เพื่อแจ้งเตือนและรับค่าที่กลับมา

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $notifyURL);
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec( $ch );
curl_close( $ch );

var_dump($result);
$result = json_decode($result,TRUE);

จากนั้นทำการอัพโหลดลง เว็บของเรา และเรียกใช้งานด้วย cron-job.org

สร้าง cronjob ขึ้นมา ตั้งชื่อและลิ้งที่ต้องการเรียกใช้งาน ต้องกำหนด token เรียกใช้ด้วยนะ แต่ขี้เกียจเลยไม่ทำ

จากนั้นเลือกตั้งค่าเวลาให้แจ้งเตือนตามที่เรากำหนด แล้วบันทึก

บทความบ้าๆ บอๆ อีก 1 บทความ ไม่มีอะไร มีสาระไหมไม่รู้ 5555

--

--

Nonzakiz

Civil Engineer | Technology Road | Technology PIPE | Engineering inspection developer