ตึ๊งตึ่ง! เพิ่มประสิทธิภาพการแจ้งเตือนด้วย Line Notify กันเถอะ (PHPฉบับง่ายมาก)

Category: Programming | Posted date: 2017-07-12 23:56:12 | Updated date: 2017-08-24 00:52:59 | Posted by: Wasin Jansamut


จากการแจ้งเตือนของWebAppคือการต้องเปิดหน้านั้นๆค้างไว้ แต่เมื่อได้พบกับ Line Notify ชีวิตเราก็เปลี่ยนไป



จากการเขียนWebappมา 2-3 ปี ผมเคยได้โจทย์จากผู้ใช้งานโปรแกรมมาว่า "พอทางนู้นเปิดงานแล้ว ให้มันเด้งที่มือถือพี่ได้ม่ะ?.." จริงๆมันก็ได้ แต่การใช้อีเมล์ หรือ smsมันก็มีจุดด้อยบ้างเช่น
- การใช้อีเมล์  ข้อดีคือข้อมูลครบถ้วน เสียเงินค่าเซิฟเวอร์เมล์(ถึงแถมจากโฮตหลักก็ถือว่าเสีย) แต่ถ้าหากจะแค่แจ้งเตือนอย่างเดียว และมีปริมาณที่มาก ก็อาจจะโดนแจ้งว่าเป็นสแปมก็ได้ 
- การใช้ SMS หากเบอร์นั้นๆมีการปิดsms โฆษณา ก็จะไม่ได้รับข้อความแจ้งเตือนจากเรา และยังเสียเงินอีกด้วย (ประมาณsms 0.50บาท)

ล่าสุดเจอของเล่นใหม่คือ Line Notify ที่มีไว้สำหรับ "แจ้งเตือน" ล้วนๆ เรามาดูแนวคิดของเขาก่อนดีกว่าครับ แนวคิดของเจ้า Line Notify คือ สร้างบอทขึ้นมาตัวนึง แล้วเอาบอทตัวนี้เข้าไปอยู่ในกลุ่มกลุ่มนึง(Token) แล้วรอรับคำสั่งจากเราว่าให้ส่งข้อความครับ

ไม่ต้องงงครับ เปรียบง่ายๆเหมือนตัวเราเอง อยากจะข้ามไปตะโกนอะไรสักอย่างที่เกาะล้าน โดยตัวเราเองอยู่พัทยา หลักการง่ายๆคือ
-สร้างบอทแทนเราตัวนึง (สมัครLINE Notify)
-สร้างสะพาน (Token) ไปยังเกาะล้าน
-ส่งไอบอทตัวนี้ไปตะโกนที่เกาะล้าน (Add มันเข้ากลุ่ม)
3 ขั้นตอนเองง่ายๆ เริ่มกันเลย

เบื้องต้นให้เราเข้าไปที่https://notify-bot.line.me/en/  Login Account line ของเราแล้วเลือก MyPage

เลื่อนลงมาด้านล่างเลือก Genarate Token (ส่วนนี้คือการสร้างสะพานที่เชื่อมโยงจากโปรแกรมของเราไปที่ตัวแจ้งเตือนของกลุ่มนั้นๆ)

ด้านบนให้ใส่ชื่อที่จะให้แสดงว่าบอทตัวนั้นชื่ออะไร (แนะนำให้ชื่อสั้นๆ) ส่วนด้านล่างก็เลือกว่า ให้มันแจ้งเตือนที่กลุ่มไหน


เสร็จแล้วจะได้Token ที่เป็น key เปรียบเหมือนสะพานในการส่งข้อความจากโปรแกรมของเราเข้ากลุ่มนั้นๆ ให้Copy เก็บไว้ครับ


แล้วมาที่หน้าโปรแกรมของเรา ในที่นี้ผมจะเอาไว้แจ้งเตือนเวลามีคนเปิดงาน NCR (สินค้าเสียหาย) ในบริษัท เพื่อให้แจ้งเตือนฝ่ายผลิตให้จัดการตรวจสอบแก้ไขได้อย่างทันท่วงที่ ซึ่งระบบเดิมคือเปิดเบาร์เซอร์ทิ้งไว้  ซึ่งแนวคิดการวางโค้ดก็คือ เอาไว้ในเงื่อนไข เวลา insert สำเร็จ ก่อนที่จะเปลี่ยนหน้า โดยโค้ดคือ

<?php
function send_line_notify($message, $token)
{ $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, "https://notify-api.line.me/api/notify"); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $ch, CURLOPT_POST, 1); curl_setopt( $ch, CURLOPT_POSTFIELDS, "message=$message"); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1); $headers = array( "Content-type: application/x-www-form-urlencoded", "Authorization: Bearer $token", ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec( $ch ); curl_close( $ch ); return $result;
}
$message = 'ข้อความ';
$token = 'ใส่ token ของคุณ';
echo send_line_notify($message, $token);
?>

แล้วให้ลองโปรแกรมดู หากสำเร็จจะมีข้อความขึ้นว่า 

{"status":200,"message":"ok"}

และส่วนสุดท้ายที่ห้ามลืมและลืมกันบ่อยๆก็คือ ถึงแม้เรามีสะพาน(Token) ให้มันแล้ว แต่เรายังไม่มีตัวแทนที่จะไปตะโกนในกลุ่มนั้นๆเลย เราต้องดึงเจ้า Line Notify นี่เข้ากลุ่มด้วย


และเมื่อทดลองส่งข้อความก็จะได้แบบนี้ครับ เท่ชิบ


สรุปสั้นๆง่ายๆ เจ้าตัว Line Notify นี่ มันเกิดมาเพื่อแจ้งเตือนล้วนๆ ข้อดีของมันก็คือ เขาเคลมไว้ที่ 1พันข้อความต่อชั่วโมงได้เลย และข้อความที่สื่อสารก็กระชับและอ่านง่าย และยังเชื่อมโยงกับไลน์ที่เราใช้กันในชีวิตประจำได้ด้วย ผู้รับก็จะรู้สึกไม่คิดว่ามันเป็นงาน คิดว่ามันเป็นเพื่อนคนนึงที่แจ้งเตือนเราเท่านั้นเอง

ทำงานให้เหมือนกับการเล่นเกมส์ แล้วเราจะมีความสุขครับ