Tuesday, 11 April 2017

ตั้งค่า MikroTik แจ้งเตือนระบบด้วย Line API

วันนี้เราจะมาเรียนรู้วิธีการทำระบบการแจ้งเตือนผ่าน Line API เรามาเริ่มรู้จัก Line API กันก่อนดีกว่าคัรบ Line API คือ Web Service ที่จะทำให้คุณสามารถส่งข้อความของคุณเข้าห้องแชตได้ โดยสามารถส่งเข้าเป็นรายบุคคลหรือเป็นกลุ่มก็ได้





โดย Line API นั่นรองรับทั้งการส่งข้อความแบบ Push API และ Reply API แต่ในบทความนี้เราจะขอพูดเพียงแค่ Push API ที่มาจาก Bot Line เท่านั่นนะคัรบ


โดยการส่งข้อความนั่นเราสามารถส่งได้ทั้งแบบตัวต่อตัวหรือแบบกลุ่ม


เรามาดูขั้นตอนการทำระบบแจ้งเตือนโดยผ่าน MikroTik กันคัรบ ขั้นแรกเลยให้เราเข้าไปที่ https://notify-bot.line.me/en/ เพื่อเข้าสู่ Line API Dashboard


ให้ Login ด้วย Username Password ของ Line Account ที่ตัวเองมีอยู่เมื่อเข้าระบบเรียบร้อยจะเข้าสู่หน้า Connected Services


หน้าระบบจะแสดง Service ที่เราได้ทำการสร้างไว้แล้วหากเข้าให้เป็นครั้งแรก Connected Service จะไม่มีรายการขึ้นมาแสดงให้เราไปสร้าง Token ก่อนโดยการกด Generate Token

ให้เราเลือกยุคคลหรือกลุ่มที่ต้องการจะส่งข้อความเข้าไปเมื่อระบบมีการแจ้งเตือน (Search by group name) จากนั่นให้ใส่ตัวอักษร 20 ตัวเพื่อนทำการสร้าง Generate Token



ให้เรา Copy Token นี้เอาไว้เพื่อเราจะใช้อ้างอิงในการส่งข้อความเข้ากลุ่มที่เราได้ทำการเลือกไว้ครับ
ขั้นตอนต่อไปเราจะไปทำระบบตรวจจับว่าถ้าระบบ ของเรามีจ้อผิดหลาดหรือระบบ Internet ล่มขึ้นมาเราจะแจ้งเตือนยังไงใน MikroTik

ต้วอย่าง : ระบบเดิมมี WAN Internet 2 เส้นนะคัรบ ผมจะทำการแจ้งเตือนเมื่อWAN เส้นใดเส้นหนึ่งล่มนะคัรบ

เข้าไปที่ Winbox => PPP => Profiles แล้วเลือก Profile ที่ pppoe-out1 และ pppoe-out2 เลือกใช้จาดนั่นก็ใส่ Script ดังต่อไปนี้ลงใน On up และ On Down ทั้งสอง Script นี้จะทำงานเมื่อ pppoe-client ต่อไปยัง Server แล้วมีข้อผิดพลาดครับ

/tool fetch url="https://linenotify.com/notify.php\?token=i0TAXqkdsda9BAevzIXUK8tU53QVMBE71wEEXmlwmpXRZV&message=Test%20Internet_wan2%20is%20up." keep-result=no

โดย Token = ให้เราเอา Token ที่สร้างจากหน้า Line API มาใส่คัรบ
ส่วน Message = ให้เราใส่ข้อความเข้าไปครับโดน %20 คือค่าเหมือนเวลาเรากด space bar ครับคือเคาะนั่นเองครับเราต้องเข้าระหัว HTML Encode ไว้ครับ ไม่งั้นจะทำให้ Script ส่งไม่ได้คัรบ Error



จากนั่นให้เราไป Invite Line Notify ไปใส่ไว้ในกลุ่มที่เราได้สร้างขึ้นมาด้วยนะครับไม่งั้นตัว Line Notify จะไม่ทำงานคัรบ



เท่านี้ก็เสร็จเรียบร้อยละคัรบเราก้มาลองเทสดูว่าถ้าระบบ Down ก็มีข้อความส่งมาครับ



เพียงเท่านี้เราก็ทำ Line Group Notify ได้แล้วคัรบ ท้านสุดเราสามารถทำ Line API ไปต่อยอดเพื่อทำการแจ้งเตือนเเมื่อระบบ Overload เกินกี่ % ก็ได้นะคัรบ

สนใจติดต่อ
ภัทร 0896494533
Email: pstudiodev@gmail.com
Line: indyitgroup หรือ @indyit
Facebook: https://www.facebook.com/PStudioDev/
Web: http://indy-group.com/

13 comments:

  1. ให้แจ้งเตือน AP ที่เสียเข้า Line ทำไงครับ ขอคำแนะนำเพิ่มเติม

    ReplyDelete
    Replies
    1. ตั้งค่า winbox => tool => netwatch => ip = ap's ip ครับแค่นี้เองครับ

      Delete
  2. ถ้าไม่ได้ทำ pppoe หละครับ
    รับไอพีแบบ dhcp จากเราเตอร์ ต้องทำยังไงเหรอครับ

    ReplyDelete
    Replies
    1. นั่นนะสิครับ

      Delete
    2. ถ้ารับ dhcp มาต้องเชคอีกแบบครับโดยการใช้ netwatch ครบมี event นื on, down เหมือนกันเลยครับ

      Delete
  3. แจ้งเตือนโดยแสดงชื่อไอดีผู้ใช้ด้วย ทำยังไงครับ

    ReplyDelete
  4. Script สำหรับส่ง WAN IP สำหรับใครที่ไม่อยากใช้บริการ Dynamic DNS ครับ ตั้งค่า Schedule เอาเองนะครับ

    ########## Start

    :global previousIP
    :local currentIP [/ip address get [find interface="WAN"] address]; ### Interface ที่ต้องการให้ส่งค่า
    :log info "Current wan ip: currentIP = $currentIP"

    #:if ($currentIP != $previousIP) do={
    #:set previousIP $currentIP

    /tool fetch url="https://linenotify.com/notify.php\?token=YnVblQkvC6PKcRaUA4hwRFkgi4qT8PABRGCZBZ6qRO8&message=$currentIP" keep-result=no

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. ถ้าเราต้องการส่งให้ line id ของคนๆ นั้นทำไงครับ

    ReplyDelete
  7. ของผมมี 2 wan แบบ pppoe แต่ไปที่ Winbox => PPP => Profiles แล้วเลือก Profile ที่ pppoe-out1 และ pppoe-out2
    มันไม่มีทั้งสองอันนี้เลยคับ งง pppoe-out1 และ pppoe-out2 หรืออันนี้คือ VPN คับ

    ReplyDelete
    Replies
    1. ผมก็ไม่ได้เหมือนกันครับ ไม่รู้กั๊กหรือเปล่า ไม่เหมือนอย่างที่บอกไว้

      Delete
  8. จะไห้มันโชว์หมายเลข ip ด้วยยังไงครับ

    ReplyDelete