ใช้งาน Line Notify เป็น push notification แจ้งเตือนผ่านมือถือ อย่างง่าย

เขียนเมื่อ 6 ปีก่อน โดย Ninenik Narkdee
push notification line notify line

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ push notification line notify line

ดูแล้ว 20,404 ครั้ง


สำหรับเนื้อหาต่อไปนี้ จะเป็นแนวทางอย่างง่าย น่าจะทำได้ไม่ยากนัก เป็นการประยุกต์ใช้งาน
Line Notify มาประยุกต์กับการแจ้งเตือนผ่านมือถือ ในลักษณะ push notification ผ่าน
Application Line App ถึงจะมีความสามารถไม่มากนัก ต่อก็เพียงพอต่อการนำไปปรับประยุกต์
ใช้งานได้ เช่น แจ้งข้อมูลการสั่งซื้อของลูกค้าผ่านเว็บไซต์มายังผู้ดูแล แจ้งสรุปยอดคนเข้าชมเว็บไซต์
ในรอบวัน หรืออื่นๆ แล้วแต่การประยุกต์ใช้งาน
 
ก่อนอื่น เราต้องเพิ่ม Line Notify เป็นเพื่อนใน Line Accont ของเราก่อน โดย สแกน Qrcode 
ด้านล่าง เพื่อเพิ่ม Line Notify เป็นเพื่อน
 
 

 
 
จากนั้นให้ไปที่เว็บไซต์ 
 
หากยังไม่ล็อกอิน ให้ทำการล็อกอินเข้าระบบด้วยบัญชี line ของเราก่อน
คลิกที่ชื่อ ผู้ใช้หลังจากล็ฮกอินแล้ว เลือก "หน้าของฉัน" ดังรูป
 
 


 
 
เลื่อนลงมาด้านล่างเลือกกดที่ปุ่ม "ออก Token" 
 
 

 
 
 
โดย Token ในส่วนนี้จะเรียกว่า "Personal Access Token" จะทำให้ Line Notify ที่เราเพิ่มเป็นเพื่อน
สามารถเห็นข้อมูลชื่อห้อง (Group) กับชื่อโปรไฟล์ (Profile) ที่เชื่อมต่อได้ ทำให้เราสามารถรับการ
แจ้งเตือนแบบตัวต่อตัวกับ Line Notify หรือ รับการแจ้งเตือนผ่าน Group ที่เราเชื่อมต่ออยู่ โดยการรับ
การแจ้งเตือนใน Group ที่เราใช้งาน เราจำเป็นต้อง invite
 
ในที่เราจะเลือกเชื่อมต่อกับ กลุ่ม ที่เราเพิ่งสร้างมาใหม่ กรอกข้อมูล และเลือกกลุ่ม เสร็จกดปุ่ม "ออก Token"
 
 


 
 
คัดลอก (copy) ค่า Access Token ไว้ใช้งาน

 
 


 
 
จากนั้นเราจะได้รายการที่เชื่อมต่อ แสดงดังรูป 
 
 


 
 
 
ต่อไปมาที่ App Line แล้วไปที่กลุ่มห้องที่เราสร้าง ทำการ Invite "Line Notify" มาในกลุ่ม
ที่เราต้องการรับการแจ้งเตือน ดังรูป
 

 
 

 
 
 
ทดสอบรันไฟล์ส่งข้อความแจ้งเตียน (รายละเอียดโค้ดแสดงในลำดับต่อไป)
หลังจากเราเชิญ Line Notiry เข้ามาในกลุ่ม และลองทดสอบโค้ดส่งข้อความ ก็จะได้ผลลัพธ์ดังนี้

 
 

 
 
 
 
 

ตัวอย่างโค้ดการส่งข้อความ push ผ่าน Line Notify

 
ไฟล์ dbconnect.php  ถ้ามีการเชื่อมต่อกับฐานข้อมูล mysql 
 
<?php  
$mysqli = new mysqli("localhost", "root","","test");  
/* check connection */ 
if ($mysqli->connect_errno) {  
    printf("Connect failed: %s\n", $mysqli->connect_error);  
    exit();  
}  
if(!$mysqli->set_charset("utf8")) {  
    printf("Error loading character set utf8: %s\n", $mysqli->error);  
    exit();  
}
 
ไฟล์ line_group.php  ใช้งานผ่านฟังก์ชั่น cURL
 
<?php
// กรณีต้องการตรวจสอบการแจ้ง error ให้เปิด 3 บรรทัดล่างนี้ให้ทำงาน กรณีไม่ ให้ comment ปิดไป
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// กรณีมีการเชื่อมต่อกับฐานข้อมูล
//require_once("dbconnect.php");

$accToken = "กรอก access token ของเรา ";
$notifyURL = "https://notify-api.line.me/api/notify";

$headers = array(
	'Content-Type: application/x-www-form-urlencoded',
	'Authorization: Bearer '.$accToken
);
$data = array(
	'message' => 'ทดสอบข้อความ ใน กลุ่ม Line'
);

// ส่วนของการส่งการแจ้งเตือนผ่านฟังก์ชั่น cURL
$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, 0); // ถ้าเว็บเรามี ssl สามารถเปลี่ยนเป้น 2
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0); // ถ้าเว็บเรามี ssl สามารถเปลี่ยนเป้น 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);
// ดูโครงสร้าง กรณีแปลงเป็น array แล้ว
//echo "<pre>";
//print_r($result);

// ตรวจสอบข้อมูล ใช้เป็นเงื่อนไขในการทำงาน
if(!is_null($result) && array_key_exists('status',$result)){
	if($result['status']==200){
		echo "Pass";
	}
}
?>
 
 
เราสามารถนำคำสั่งในส่วนของการแจ้งเตือนนี้ ไปประยุกต์กับ PHP Project ของเราต่อไปได้
 
เนื้อหาในตอนหน้า จะมาแนะนำวิธีการสร้าง sevices สำหรับ การใช้งาน Notify กับกลุ่มผู้ใช้งานทั่วไป
ทีมีบัญชี Line และต้องการรับบริการการแจ้งเตือนจาก Line Notify ผ่าน Service ที่เราสร้างขึ้น 
ติดตามในตอนหน้า 
 


   เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 04-11-2017


การส่งข้อความแจ้งเตือนเป็นรูปภาพ และสติ๊กเกอร์

 
กรณีต้องการส่งเป็น Sticker สามารถกำหนดในส่วนของ $data เป็นดังนี้
 
$data = array(
	'message' => ' ', // ต้องส่งข้อความด้วยเสมอ ถ้าไม่มี ให้เว้นเป็นช่องว่าง
	'stickerPackageId' => 2,
	'stickerId' => 22,
);
// ลิ้งค์ค่า packid กับ stickerid https://devdocs.line.me/files/sticker_list.pdf
 
และในส่วนของการส่งเป็นรูปภาพ ได้ลองทดสอบการ upload รูป ไปยัง server ของ Line แล้ว 
แต่ยังไม่สามารถทำได้ อย่างไรก็ตาม สามารถส่งเป็น url ของรูป โดยระบุ url ของขนาด thumbnail 
(รูปย่อ) และ url ของรูป Fullsize (ขนาดใหญ่) ในเบื้องต้นแทนได้ โดยกำหนดในส่วนของ $data เป็นดังนี้
 
$data = array(
	'message' => ' ', // ต้องส่งข้อความด้วยเสมอ ถ้าไม่มี ให้เว้นเป็นช่องว่าง
	'imageThumbnail' => 'https://c1.staticflickr.com/5/4508/24306354468_854f181e2f.jpg',
	'imageFullsize' => 'https://c1.staticflickr.com/5/4508/24306354468_854f181e2f.jpg',
);
 
 โดยในการส่งรูปภาพ จะมีเงื่อนไขของ รูป คือ
imageThumbnail ต้องเป็นไฟล์รูป JPEG ขนาดกว้างยาว สูงสุดไม่เกิน 240x240 px
imageFullsize ต้องเป็นไฟล์รูป JPEG ขนาดกว้างยาว สูงสุดไม่เกิน 1024×1024 px
 
หรือกรณีที่เรามีแค่ url ของรูปต้นฉบับ หรือรูปที่จะเป็น FullSize เพียงอย่างเดียว เราสามารถ
ประยุกต์ กับการใช้งาน Intervention Image สร้าง url Thumbnail ได้ ตัวอย่างเช่น 
สร้างไฟล์ img.php ดังนี้
 
<?php
// กรณีต้องการตรวจสอบการแจ้ง error ให้เปิด 3 บรรทัดล่างนี้ให้ทำงาน กรณีไม่ ให้ comment ปิดไป
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// include composer autoload
require_once '../vendor/autoload.php';
// กรณีมีการเชื่อมต่อกับฐานข้อมูล
//require_once("dbconnect.php");

// import the Intervention Image Manager Class
use Intervention\Image\ImageManager;  
 
// สร้างตัวแปรอ้างอิง object ตัวจัดการรูปภาพ
$manager = new ImageManager();      
if(isset($_GET['pic']) && $_GET['pic']!=""){     
// การอ่านไฟล์จากรูภาพที่มีอยู่แล้ว โดยระ path ของรูปภาพ ที่จะใช้งาน เพื่อสร้างข้อมูลรูปภาพใหม่
$img = $manager->make($_GET['pic']);     
$img->fit('240','240');
 
// ส่ง HTTP header และข้อมูลของรูปเพื่อนำไปแสดง
echo $img->response();
}
 
และกำหนดในส่วนของ $data เป็นดังนี้
 
$picFullSize = 'https://c1.staticflickr.com/5/4508/24306354468_854f181e2f.jpg';
$picThumbnail = 'http://www.mywebsite.com/img.php?pic='.$picFullSize;
$data = array(
	'message' => ' ', // ต้องส่งข้อความด้วยเสมอ ถ้าไม่มี ให้เว้นเป็นช่องว่าง
	'imageThumbnail' => $picThumbnail,
	'imageFullsize' => $picFullSize
);
 
 
สำหรับการแจ้งเตือนที่เป็นรูปภาพ และ สติ๊กเกอร์นั้น จะมีการส่งข้อความไป 2 ครั้งเสมอ
ครั้งแรกเป็นข้อความ ถ้ามีข้อความ หรือถ้า เว้นวรรคเป็นช่องว่าง ก็ได้
และข้อความที่สองจะเป็นรูป หรือ สติ๊กเกอร์ที่ส่ง
 


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ



อ่านต่อที่บทความ










เนื้อหาพิเศษ เฉพาะสำหรับสมาชิก

กรุณาล็อกอิน เพื่ออ่านเนื้อหาบทความ

ยังไม่เป็นสมาชิก

สมาชิกล็อกอิน



( หรือ เข้าใช้งานผ่าน Social Login )




URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ