วันศุกร์ที่ 1 ธันวาคม พ.ศ. 2560

ส่งข้อความแจ้งเตือนในผ่าน LINE ด้วย LINE Notify


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

          LINE ถูกสร้างขึ้นมาเพื่อใช้ติดต่อสื่อสารในช่วงที่เกิดเหตุการณ์แผ่นดินไหวที่ภูมิภาคโทโฮคุของญี่ปุ่น ในตอนนั้นระบบการติดต่อสื่อสารทางโทรศัพท์ล่มจนไม่สามารถใช้การได้ LINE จึงได้ถูกออกแบบมาให้สามารถใช้งานได้ทั้งบนคอมพิวเตอร์ โทรศัพท์มือถือ และแท็บเล็ต ซึ่ง LINE ได้เติบโตมาจากการเป็นแอปพลิเคชันแชทที่ใช้ในการติดต่อสื่อสารกันกลายเป็นแพลตฟอร์มขนาดใหญ่ที่มีคุณสมบัติในการแชทอย่างครบถ้วน มีเกมให้เล่นอย่างเพลิดเพลิน นอกจากนี้ยังสามารถทำรายได้ให้กับผู้ใช้งานด้วยการสร้างสติกเกอร์ขายได้อีกด้วย

          ถึง LINE จะกลายเป็นแพลตฟอร์มแชทขนาดใหญ่ แต่กระนั้น LINE ก็ยังเป็นระบบปิดที่ไม่ยอมเปิด API ให้นักพัฒนาภายนอกเข้าใช้งานได้ จนเมื่อ LINE ได้จัดงาน LINE Developer Day 2016 ในวันที่ 26 กันยายน 2559 ที่กรุงโตเกียว ซึ่งภายในงาน LINE ได้เปิดตัว API ให้นักพัฒนาภายนอกสามารถเขียนโปรแกรมเชื่อมต่อกับระบบ LINE ได้ หนึ่งใน API ที่ LINE ได้เปิดให้นักพัฒนาอย่างเรา ๆ ได้ใช้ก็คือ LINE Notify

          LINE Notify คือบริการที่เปิดให้เราสามารถส่งข้อความการแจ้งเตือนต่าง ๆ ทาง LINE ไปยังบัญชีหรือกลุ่มต่าง ๆ ที่เราอยู่ได้ ซึ่งเราจะต้องเพิ่ม LINE Notify เข้าไปอยู่ในกลุ่มที่จะรับการแจ้งเตือนด้วย .....เอาละ เรามาเริ่มเขียนโปรแกรมส่งข้อความแจ้งเตือนกันเลยดีกว่า

ให้เราเข้าไปที่เว็บ https://notify-bot.line.me/en/ แล้วกดที่ Log in
ใส่ username และ password เพื่อ Log in เข้าสู่ระบบ

ตรงชื่อผู้ใช้งาน ให้กดเมนู My page

เลื่อนลงมาข้างล่างจนเจอส่วนของการสร้าง access token ให้กดปุ่ม Generate token

ในช่องข้างบนให้กรอกชื่อ token จากนั้นให้เลือกกลุ่มที่จะรับข้อความแจ้งเตือน แล้วกด Generate token

ระบบจะสร้าง token ออกมา ให้กดปุ่ม Copy เอาไว้ก่อน
** คำเตือน: ให้ทำการก็อปปี้ token ไปเก็บไว้ใน notepad ก่อน
เพราะว่าหลังจากปิดป๊อปอัพนี้แล้ว เราจะไม่สามารถเรียกดู token อันนี้ได้อีกแล้ว
ต้องสร้างใหม่สถานเดียวจ้าาาาา **

ในระบบจะแสดง LINE Notify ที่เราได้สร้างไว้

ในหน้าแชท บัญชี LINE Notify ก็จะแจ้งว่าเราได้ทำการสร้าง token ขึ้นมาแล้ว

ถ้าเรายังไม่ได้เพิ่มบัญชี LINE Notify เข้าไปในกลุ่มที่เราได้เลือกไว้ตอนสร้าง token ก็จะแสดงข้อความแบบนี้
ให้เราเข้าไปในกลุ่มนั้น แล้วเพิ่มบัญชี LINE Notify เข้าไปในกลุ่มด้วย

          ถึงตรงนี้เราก็จะเสร็จในส่วนการสร้าง token เพื่อนำเอาไปใช้ในโค้ดเรียบร้อยแล้ว ต่อไปเป็นการเขียนโค้ด PHP เพื่อส่งข้อความไปยังกลุ่ม LINE

<?php

$line_api = 'https://notify-api.line.me/api/notify';
$access_token = 'access token ที่เราสร้างขึ้น';

$str = 'ทดสอบข้อความ';    //ข้อความที่ต้องการส่ง สูงสุด 1000 ตัวอักษร
$image_thumbnail_url = '';  // ขนาดสูงสุด 240×240px JPEG
$image_fullsize_url = '';  // ขนาดสูงสุด 1024×1024px JPEG
$sticker_package_id = 1;  // Package ID ของสติกเกอร์
$sticker_id = 410;    // ID ของสติกเกอร์

$message_data = array(
 'message' => $str,
 'imageThumbnail' => $image_thumbnail_url,
 'imageFullsize' => $image_fullsize_url,
 'stickerPackageId' => $sticker_package_id,
 'stickerId' => $sticker_id
);

$result = send_notify_message($line_api, $access_token, $message_data);
print_r($result);

function send_notify_message($line_api, $access_token, $message_data)
{
 $headers = array('Method: POST', 'Content-type: multipart/form-data', 'Authorization: Bearer '.$access_token );

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $line_api);
 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $message_data);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $result = curl_exec($ch);
 // Check Error
 if(curl_error($ch))
 {
  $return_array = array( 'status' => '000: send fail', 'message' => curl_error($ch) ); 
 }
 else
 {
  $return_array = json_decode($result, true);
 }
 curl_close($ch);
 return $return_array;
}

?>
          จากโค้ดข้างบน
  • $line_api คือ url api ของ LINE
  • $access_token คือ token ที่เราได้สร้างขึ้นจากวิธีข้างบน
  • $str คือข้อความที่เราต้องการส่ง
  • $image_thumbnail_url คือ url รูปภาพนามสกุล .jpg มีขนาดไม่เกิน 240*240 px
  • $image_fullsize_url คือ url รูปภาพนามสกุล .jpg มีขนาดไม่เกิน 1024*1024 px
  • $sticker_package_id คือรหัสแพ็กเกจสติกเกอร์
  • $sticker_id คือรหัสสติกเกอร์
          ซึ่งเราสามารถเข้าไปดูรหัสสติกเกอร์กับรหัสแพ็กเกจสติกเกอร์ได้ ที่นี่ โดยผลลัพธ์ที่ได้ก็จะแสดงข้อความในหน้าแชทประมาณนี้

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

Share:

9 ความคิดเห็น:

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

    ตอบลบ
  2. ไม่ระบุชื่อ29 สิงหาคม 2561 เวลา 10:35

    Fatal error: Call to undefined function send_notify_message() in
    แก้ยังไงครับ

    ตอบลบ
    คำตอบ
    1. อันนี้เหมือนว่าจะก็อปปี้โค้ดไปไม่ครบหรือเปล่าครับ เพราะ error แจ้งว่าไม่พบฟังก์ชัน send_notify_message() ครับ ต้องก็อปปี้โค้ดข้างล่างไปด้วย

      function send_notify_message($line_api, $access_token, $message_data)
      {
      $headers = array('Method: POST', 'Content-type: multipart/form-data', 'Authorization: Bearer '.$access_token );

      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $line_api);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $message_data);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      $result = curl_exec($ch);
      // Check Error
      if(curl_error($ch))
      {
      $return_array = array( 'status' => '000: send fail', 'message' => curl_error($ch) );
      }
      else
      {
      $return_array = json_decode($result, true);
      }
      curl_close($ch);
      return $return_array;
      }

      ลบ
    2. Copy ไปครบแล้วยังขึ้นแบบเดิมครับ

      ลบ
  3. Array ( [status] => 000: send fail [message] => couldn't connect to host )

    ตอบลบ
  4. Array ( [status] => 000: send fail [message] => couldn't connect to host )

    แก้ไงครับ

    ตอบลบ
    คำตอบ
    1. รบกวนขอดูโค้ดที่เขียนด้วยครับ

      ลบ
  5. ไม่ระบุชื่อ13 มกราคม 2563 เวลา 10:45

    ขอบคุณมากครับผม ดีมากๆเลยครับ ยอดเลยครับ

    ตอบลบ
  6. Is the NFL make money? Why is the league making money
    NFL fans can sign up for หาเงินออนไลน์ $1000 and make $500 in free bets. It doesn't really matter to you if you want to make real money and win real money with

    ตอบลบ