0318 | มาประยุกต์ใช้ LINE Notify กับ NAS ของ QNAP กัน

วันนี้จะมาเขียนวิธีการแจ้งเตือนของ QNAP โดยใช้ Line Notify ด้วยวิธีง่ายๆกันครับ

สิ่งที่ต้องเตรียมคือ
1. NAS ของ QNAP (ปูหัวเรื่องขนาดนี้แล้ว คงเป็นยี่ห้ออื่นไม่ได้)
2. Web Server ที่สามารถรัน PHP และสามารถออกอินเตอร์เน็ตได้ จะเป็นเครื่องที่ตั้งอยู่ภายในบ้านก็ได้ หรือจะใช้เว็บโฮสติ้งฟรี หรือเสียเงินก็ได้ (แบบเสียเงินลองดูที่ www.jaideawhosting.com นะครับ…. แอบขายของ :D)

เมื่อเตรียมสิ่งที่ต้องการพร้อมแล้ว ก็มาเริ่มกันเลย

  1. ให้ Log in เข้าไปใน QNAP โดยไปที่เมนู Control Panel จากนั้นเลื่อกที่ Notification
    จากนั้นเลือกที่ Tab  SMS
  2. จากนั้นให้คลิกเลือก Add SMS service provider ในส่วนของ SMS service provider
    จากนั้นให้ใส่ข้อมูลลงในช่อง SMS service provider และ URL template text โดยที่
    SMS service provider = ให้ตั้งชื่ออะไรก็ได้ เช่น Line-Notify
    URL template text = URL ที่จะรับค่าที่ QNAP ส่งไป โดยเราจะใช้ PHP ในการเขียน ซึ่งจะยกตัวอย่าง code ในขั้นตอนต่อไป โดยรูปแบบมีดังนี้

    http://192.168.100.11/line-notify/line-notify.php?username=@@Username@@&password=@@Password@@&message=@@Text@@&&phone=@@PhoneNumber@@
    

    โดยในส่วนของ http://192.168.100.11/line-notify/line-notify.php ให้เปลี่ยนตาม URL และชื่อไฟล์ PHP

    จากนั้นกด Apply

  3. ในส่วนของ SMS service provider เลือกชื่อที่เราได้สร้างไป จากนั้นให้ใส่ username, password ตามที่ต้องการ และให้จำเอาไว้ด้วย เนื่องจากต้องไปใช้ในขั้นตอนการเขียน code PHP  และในส่วนของ When the following system events occur. ให้ติ๊กเลือกตามต้องการ โดยมีให้เลือก 2 อย่างคือ Error และ Firmware Update  แต่จะไม่มีการแจ้งเตือน Warning ซึ่งจะมีแจ้งเตือนในส่วนของอีเมลเท่านั้น และในส่วนสุดท้ายคือ เบอร์โทร จะต้องใส่ลงไปด้วย หากไม่ใส่ ระบบจะไม่สามารถทำงานได้
    จากนั้นก็กด Apply
  4. มาถึงขั้นตอนการเขียน code PHP โดยผมจะนำ code ที่ได้แนะนำครั้งที่แล้ว ลองใช้งาน LINE Notify ด้วย PHP มาเขียนอย่างง่ายๆครับ
    <?php
    
    if( ($_GET['username'] == 'admin') && ($_GET['password' == '12345']) )
    {
      $message = $_GET['message'];
      $token = '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;
    }
    ?>
    

    โดยในตัวอย่างนี้ ผมได้ตั้ง username = admin และ password = 12345 จากนั้นก็นำไฟล์ไปวางไว้ใน web server ตาม URL ที่ได้ตั้งเอาไว้ใน QNAP ในข้อที่ 2 (ที่จริงควรสร้างไฟล์ PHP ก่อน แต่เพิ่งนึกได้ ขี้เกียจแก้ไขแล้วครับ 😀 )

  5. กลับไปที่ QNAP กดปุ่ม Send a Test SMS Message เพื่อทดสอบครับ หากสำเร็จ จะมีข้อความส่งมาดังตัวอย่างด้านล่างครับ