ครั้งแรกกับงาน MEET THE EXPERT #1 ของ LINE Developers Thailand

Event Apr 30, 2020

ครั้งแรกกับการไลฟ์ของพี่ตี๋พี่แทน และพี่ๆ LAE ทั้ง 5 ท่าน มาแบบสดๆ ให้เราดูถึงที่บ้านเลย เริ่มไลฟ์ตอนเย็นหกโมง หลังเราเลิกงานจาก work from home พอดีเลย เย้ๆ

https://www.facebook.com/events/686537618758960/710989962980392

Agenda จะมี 2 เรื่อง คือ

  • What happened in LINE API in Q1 2020
  • Meet the expert - LIVE Q&A

มาเริ่มกันเลยดีกว่า ส่วนไลฟ์สามารถดูย้อนหลังได้ที่นี่จ้า

Posted by LINE Developers Thailand on Wednesday, 29 April 2020
https://www.facebook.com/LINEDEVTH/videos/524717361554840/

What happened in LINE API in Q1 2020

ก่อนอื่นเลย ในเพจเขามีคนกดไลค์ 7000 คนแล้ว และกลุ่มก็มีประชากรมากกว่า 15,000 คนแล้วน้าาา

LINE Developers Group Thailand
ชุมชนของนักพัฒนาที่สนใจการใช้ LINE APIs - A community for Developers who interest in LINE APIs. ทีมงาน LINE Developers Thailand ขออนุญาตแจ้งกฎ เพื่อความเป็นระเบียบเรียบร้อยสักเล็กน้อยนะคะ ===...
https://www.facebook.com/LINEDEVTH/

และมีของอัพเดต 12 อย่างด้วยกัน

LINE Messaging API

  • LINE emoji : เมื่อก่อนต้องหาวิธีแปลงแล้วเอาไปใส่ ตอนนี้ใส่ได้ง่ายขึ้นแล้วนะ สามารถใส่ใน text ได้เลย โดยเราสามารถ set index ตำแหน่งที่เราจะใส่ emoji ด้วย Regular Expression น้าาา
https://d.line-scdn.net/r/devcenter/sendable_line_emoji_list.pdf

พบว่า เอ้อออ emoji เยอะจริงๆตามที่พี่ๆบอกเลย ตั้ง 60 หน้าอ่ะ เยอะกว่าสติ๊กเกอร์อีกกก

  • Icon & Display : สามารถเปลี่ยนชื่อและ icon ของน้องบอทแบบ real-time ได้แล้ว ไม่ต้องรอกันเป็นอาทิตย์เหมือนเดิมหล่ะจ้า และมีบอกด้วยว่าเป็นของ OA ตัวไหน

อ่านต่อตรงนี้จ้า

เปลี่ยนชื่อกับไอคอนได้แล้ว!! ลูกเล่นใหม่ล่าสุดของ LINE OA
ลูกเล่นใหม่ที่ว่านั่นก็คือ ตอนส่งข้อความ push/reply/multicast/broadcast/narrowcast ผ่าน Messaging API วิธีการใช้งานก็ไม่ยากเลยครับ แค่ใส่ Property เพิ่มอีก 1 ตัวใน Message Object…
  • Narrowcast : ส่งให้ถูกคน ถูกใจ ใน LINE Chatbot แตกต่างจาก broadcast ปกติคือ ส่งเป็นกลุ่มแบบเฉพาะเจาะจงได้เลย เช่น เพศ, อายุ, OS ของมือถือ (iOS/Android), เป็นเพื่อนกับ OA นี้นานแค่ไหน, เคยเห็นหรือคลิกข้อความที่ broadcast หรือไม่

อ่านต่อที่นี่เลยจ้า

ส่งข้อความให้ ‘ถูกคน + ถูกใจ’ ใน LINE Chatbot ด้วย Narrowcast API
สวัสดีครับ ขอเริ่มด้วยประโยคที่ผมเคยได้ยินและรู้สึกว่าโดนใจ ซึ่งผมคิดว่าถ้าเราสามารถเข้าใจลูกค้าได้แบบเข้มข้น โดยอาศัยข้อมูลต่างๆจากข้อมูลของเราเอง หรือข้อมูลจาก Platform…
  • Audience Sharing : ส่งจากผู้ใช้จาก OA Manager หรือให้หลังบ้านสร้างจาก userId แล้วให้ฝั่ง marketing เลือกเอา
  • Multicast : ส่งแบบ 1-to-many ตอนแรก limit ไว้ที่ 150 คน ตอนนี้ขยายเป็น 500 คน ซึ่ง use case ก็คือการสร้างกลุ่ม id ของ user ทำให้คนส่งวนลูปส่งออกไปน้อยลง
  • เพิ่ม field language ใน get profile : คือภาษาที่ user ใช้ใน LINE มี use case คือสร้าง Rich Menu เป็นภาษานั้นๆ ทำให้ UX ดีขึ้น
  • Channel Access Token v2.1 :

จริงๆ Channel Access มี 3 แบบด้วยกัน คือ

1) Long-Life : อันนี้จะแอบบาปๆกันทุกคนเนอะ เนื่องจากมันสะดวก สร้างเสร็จได้เลย ใช้ง่าย ใช้ยาวๆ สะดวกเรา แล้วยังสะดวก hacker อีก แงงงงงงง

2) Short-Life : ลดความบาปลงด้วย token ที่ใช้ Channel Secret ไป issue มาได้ Access Token ซึ่งมีอายุ 30 วัน

3) Channel Access Token v2.1 : เอา key จาก console เพื่อเอาไปสร้าง JWT กำหนดอายุเลยว่าจะมีอายุเท่าไหร่ ซึ่งสูงสุด 15 นาที และไป issue มาได้ Access Token ได้ ซึ่งเขาแนะนำให้ลงทุนในเรื่องนี้

ถ้าอยากอ่านเพิ่มเติม อ่านบล็อกด้านล่างนี้เลย ละเอียดสุดๆ

Channel access token v2.1 — ใส่เกราะให้บอทแกร่ง 🛡️
คงไม่ดีแน่ … ถ้า LINE Official Account ของคุณถูก hacker นำไปใช้ในการหลอกลวงลูกค้าเพื่อนำข้อมูลไปใช้ทำสิ่งที่ผิดกฎหมาย วันนี้เรามาแนะนำการใช้ Channel access token v2.1 เพื่อเพิ่มความปลอดภัย ใส่เกราะ…
  • Content Domain เปลี่ยนภายใน 30 เมษายน 2563 สำหรับ 3 API นี้ เท่ากับว่า คนที่อ่านบล็อกในอย่าลืมเปลี่ยนนะ ไม่งั้นจะได้ 404 กลับไป

Bot Mode + Chat Mode เราจะทำงานร่วมกันได้ไหมนะ?

ทำได้ด้วย MyShop เป็นระบบช่วยซื้อขายขิงให้สะดวกมากขึ้น จัดการที่หลังบ้านได้ และมีทั้ง bot mode และให้ admin ตอบ แน่นอนว่ายังไม่เห็นข้อความที่น้องบอทตอบนะ ซึ่งอดใจรอ อาจจะมี feature เพิ่มเติมเนอะ

แนะนำของดีย์! LINE MyShop — Bot+Chat ได้ หน้าร้านผ่าน LIFF ก็มี แถมใช้ฟรีอีกต่างหาก
LINE MyShop เป็นระบบหลังบ้านตัวใหม่ที่จะมาเชื่อมต่อกับ LINE Official Account ที่จะช่วยให้การซื้อขายผ่าน LINE มีประสบการณ์การใช้งานที่ดีที่สุด เพราะ MyShop มาด้วยระบบจัดการหน้าร้าน หลังร้าน…

สัมผัสความเทพของเจ้าตัวนี้กัน

มาอัพคลิปวิดีโอในงานกันดีกว่า อันนี้เป็น session LIFT ของพี่เนติ แห่ง Sellsuki จ้า เป็น demo การใช้งาน LINE OA Plus เป็นการรวมร่างกันของ LINE OA และ web e-commerce ว่ามันจะว้าวขนาดไหน ตอนนี้อยู่ในขั้นตอนของการเทสอยู่ อดใจรอเร็วๆนี้จ้า ปล.พยายามปั่นบล็อกจ้า จะหลับแล่ววว

Posted by MikkiPastel on Saturday, 25 May 2019
สรุปครึ่งบ่าย อยู่ในงานใหญ่ของชาวไลน์เดฟ LINE Thailand Developer Conference 2019
ครึ่งเช้าเขียนเสร็จแล้วพบว่ามัน 11 min read ซึ่งยาวมากๆ และตอนบ่ายเนื้อหาก็แน่นไม่แพ้ช่วงเช้าเลย เลยลองตั้งโพลถาม…

LIFF: LINE Front-end Framework

  • Share Target Picker : ส่งกลับเฉพาะห้องที่เปิด LIFF เท่านั้น เราสามารถเลือกเพื่อนและเลือกกลุ่มได้ และส่งกลับไปได้หลายรูปแบบ เช่น Flex Message ในนามของเรา use case ก็น่าจะเป็นตั๋วคอนเสิร์ต
  • liff.ready : การันตีว่าทำงานได้แน่หลังจากทำ liff.init สำเร็จ ทำงานแบบ asynchronous เอาตัวนี้ไปครอบและทำงานได้เลย ไม่มีแคลชมากวนใจ
  • Universal Link : เอาไปโปรโมตตามช่องทางต่างๆ เป็น https เนอะ ตัว default API เป็น liff.line.me

สุดท้าย คอร์สเรียนฟรีกับ Skooldio มาใหม่ล้าวววว สร้าง LIFF จาก zero-to-hero เลยน้าา มีโบนัสส่งท้าย เรียนหมดทั้งสองคอร์สเตรียมไหเก็บเงินได้เลย เพราะเราทำพื้นฐานของ LINE API ได้ล้าวววว

Getting Started with LIFF Development - เรียนรู้การพัฒนาแอปพลิเคชันด้วย LINE Front-end Framework | Skooldio
เรียนรู้การพัฒนาแอปพลิเคชันด้วย LINE Front-end Framework

คอร์สแรกสามารถเรียนได้ที่นี่

Building LINE Chatbot Using Dialogflow - สร้าง chatbot ให้ตอบโต้ภาษาไทยโดยไม่ต้องเขียนโปรแกรม | Skooldio
คอร์สออนไลน์ฟรี เรียนรู้การสร้าง chatbot ให้ตอบโต้ภาษาไทยโดยไม่ต้องเขียนโปรแกรม สอนโดย Line Developers Thailand

ส่วนอันนี้คือสรุปที่เรียนจ้า

มาทบทวนการทำ chatbot กับคอร์ส Building LINE Chatbot using DialogFlow
ทำ chatbot เองก็แล้วแบบงูๆปลาๆ เลยขอเรียนทบทวนสักรอบนึง ผ่านคอร์สฟรีของ Skooldio จ้า

และจริงๆก็มีใน podcast ด้วยนะ ทั้งหมดนี้

ส่วนสไลด์ย้อนหลังอยู่ที่นี่จ้า

https://drive.google.com/file/d/1KKOgTFMatMVsixNpe9Yyg1gYjrRclMn8/view

Meet the expert - LIVE Q&A

มาพบกับ LAE ทั้ง 5 ท่านเลยจ้า แต่ละท่านก็แนะนำตัวกันไป

จากนั้นจะเป็นการตอบคำถามจากทางบ้าน อาจจะจดทันบ้างไม่ทันบ้างอาจจะมีความงงๆบ้างก็ขออภัยตรงนี้เลยแล้วกันเนอะ

คำถามจากทางบ้าน

ขอประหยัดเวลาโดยการแปะรูปคำถามและพิมพ์คำตอบแทนเน้อ

ใช้ LINE userId เป็น key โดยให้ user พิมพ์อะไรสักอย่างมา เพื่อเอา username ไป map กับ userId แล้วลงถัง database หรือใช้การยืนยันตัวตนว่าเป็นคนนั้นๆจริงๆ

ความหมายของคำถามคืออยากได้หมดยกชุดหรือไม่ได้หมดยกชุด

ใช้ Narrowcast มี property เตรียม userId เป็น audience group แล้วส่งให้ send ที่เดียว และสามารถดู stat ได้ด้วย แล้วมี method ให้ get insight ว่าคนเปิดหรือคลิกเท่าไหร่

มีการ resolve ก่อนเสร็จเลยทำให้ดักไม่ได้ เดี๋ยวเขาจะเปลี่ยนการ resolve หลังจากเรา share เสร็จแล้ว และดูได้ว่าแชร์เป็น message ประเภทไหน

ทั้งสองภาษานี้มีข้อดีและข้อเสียต่างกัน

PHP : อยู่มานาน, library เยอะ, ต่อ social ได้ด้วย, เรียนง่าย ฝึกง่าย

node.js : สะดวกตรงต่อ Firebase และ DialogFlow ได้

สรุป กระบี่อยู่ที่ใจ

สำหรับเรา ตอนแรกเลยที่ตัว LINE Messaging API ออกมาใหม่ๆ แล้วตอนนั้นไม่มี python ที่ตอนนั้นถนัดไง เลยอ่ะเขียน php ดูก่อนตามบล็อกพี่เนย จนมาทำน้องหมีตัวแตกเลยใช้ node.js นี่แหละ แต่ตัว js ก็ทำได้หลายๆอย่างแหละพวกเขียนเว็บ และ framework ต่างๆ

บอทเรียนรู้ด้วยตัวเอง เรียนรู้แบบไหน? Technology ตอนนี้ยังไม่ได้เป็น true AI ที่ทำให้สามารถเรียนรู้ด้วยตัวเอง อย่างเช่น Simsimi บอทจำว่า user คุยอะไรกัน และมีการ random การส่ง message มาให้ user ยังไม่มีการ control พวกคำหยาบคายอะไรพวกนี้

เดี๋ยวเราลองแปะแบบที่เราเคยเล่นเมื่อก่อนดูแล้วกันเนอะสำหรับเจ้า Simsimi มีเว็บนึงเอาคลิปเราไปแชร์ทำให้คนดูคลิปประมาณเจ็ดแปดหมื่นคนได้แบบงงๆ

ตัวบอทน้อยมีการ filter คำหยาาบหรือคำที่ไม่ดี และเอาไป learning และสามารถเอาไปใช้ในงาน cooperate สกัด patturn ว่าเป็น pro หรือเรียงอักษร ว่าอันนี้เป็น promotion นะ และมีการเก็บ track data ด้วย

เป็นคำถามที่เฉียบมาก เป็นเรื่องของ UX intension ให้ user นั้น input เป็น message ทำให้ตอบบอทได้ง่ายขึ้น

ถ้า input เป็น url link มันจะแปลกๆ

คำถามยอดฮิตเลยจ้า นอกจาก MyShop แล้ว developer เอาที่ user พิมพ์มาไปเก็บไว้ที่ webhook และเอา data ไปลง database ไปทำ chat เอง ใช้ effort ในการทำด้วยนิดนึง

เผยวิธีทำให้ LINE ใช้ Bot กับ Chat พร้อมกันได้ (ghost ไม่ยอม render ให้ ;_;)

set auto reply ก็ยังเข้า webhook อยู่ -> เอา message ที่ set ไปใส่ไว้ใน database แล้ว check ก่อนว่าตรงไหม ถ้าตรงก็ไม่ต้อง reply

การ get user profile ใน liff

1) getIdToken() เป็น JWT Token ยิงจาก server ไปขอตัว profile

2) getAccessToken() ตรงๆ ส่งไป server ขอจาก server ส่งแล้ว reload ทันที

3) getDecodedIDToken() ได้ profile ไปใช้จาก front-end ไม่ควรส่งไป back-end เพราะจะมีคนยิงหลอกได้

หรือถ้าได้แบบเรื่อยๆ ใช้ LINE Mssaging API แทน

ก่อนทำ A/B Testing นั้น มี metric ก่อนว่าจะเอาแบบไหน ปกติจะใช้อันไหนที่คนคลิกเยอะกว่าชนะ ซึ่งสามารถเปลี่ยนได้ง่ายกว่าบน web ทำได้ไม่ยากและมีประโยชน์

support query string แยู่แล้ว โดยถูกเก็บไว้ใน liff.state

สามารถอ่านบล็อกพี่ตี๋ได้ด้านล่างนี้จ้า

เทคนิคการสร้าง Universal Link ให้เปิดได้ทั้ง LIFF URL และ Web URL โดยไม่ต้องพึ่งเครื่องมือ (ghost ไม่ยอม render ให้)

อันนี้จะแบ่งในแต่ละประเด็นที่แต่ละท่านได้แชร์มา

  • ได้รับความดีใจ เพราะมีการประกาศเป็น global เลย, ได้เรียนรู้ข้อมูลและอัพเดตก่อนใคร, ได้ไป event แบบฟรีๆ (อาจจะรอโควิทหมดก่อนในช่วงนี้), ได้รับการยอมรับจากสังคมว่าเรามีความ expert จริงๆนะ
  • การเตรียมตัว : contribute ในกลุ่มเยอะๆ, พัฒนาบอทให้คนอื่นเล่นและเป็นที่รู้จัก (เราจะได้ skill), ถ้าเข้าตากรรมการแล้ว จะมีอัศวินเจไดมาทักเราเอง ซึ่งเป็นไปตาม process ของทางเขาอยู่แล้ว
  • trick ในการเตรียมสอบ : ไล่อ่าน document ของ LINE, ทำ bot ที่ตัวเองอยากทำขึ้นมา แล้วไปดู document และ stackoverflow ซึ่งทำให้เราเรียนรู้และพัฒนาได้มากขึ้น

อ่านบล็อกอย่างละเอียดจากคุณหนึ่งและคุณเอกได้ด้านล่างนี้จ้า

กว่าจะมาเป็น LINE API Expert
โครงการนี้เป็นโครงการที่ LINE เปิดตัวในงาน LINE Developer Day 2017 เพื่อช่วยเหลือนักพัฒนาและเผยแพร่ Platform ของ LINE ให้นักพัฒนาเข้ามาใช้งานแพร่หลายมากขึ้น โดยเปิดรับคนที่มีคุณสมบัติ ดังนี้…
เส้นทางสู่ LINE API Expert
ถูกต้องแล้วครับผมคนไทยที่ได้รับการประกาศให้เป็น LINE API Expert คนล่าสุด ของประเทศไทยนั่นก็คือผมเอง(เย้ เย้) วันนี้เลยจะมาเปิดอกเล่าให้ฟังกันครับว่ากว่าจะมาเป็น LAE…
ส่วนตัวเราทำ chatbot เป็น part-time ดังนั้นห่างไกลความ LAE ไปมากเลย ;____;

คำถามจากไลฟ์สด

คำถามแรก หาไม่เจออ่ะ แต่คำตอบคือ ตอนนี้ LINE MyShop ยังไม่มี API แต่อนาคตมีไหม ก็ยังไม่รู้เหมือนกัน แต่หวังว่าจะมี ในระหว่างนี้เราสามารถ download ไฟล์ .csv เพื่อดู data ของ order ไปก่อน

API Narrowcast สามารถฟีลเตอร์ได้ลึกถึงขนาดความชอบของผู้คนแต่ละกลุ่มได้หรือไม่คะ เช่นกลุ่มคนรักหมา กลุ่มคนรักแมว กลุ่มคนชอบออกกำลังกาย

Narrowcast ไม่สามารถ filter ได้ถึง interest ดูได้แต่ข้อมูลทั่วไปของ user โดยตัว interest นั้น สามารถทำได้โดยดูว่ายิง campeign ต่างๆแล้วเขาสนใจอันไหน และเอาไปทำเองได้

เคสกรณีที่ดึงค่า uid จากกลุ่มแล้วค่าไม่มาครับ แก้ไขอย่างไรบ้างครับ ได้มาแค่ค่าว่างเปล่า ทำจาก dialogflow+googsheet+appscript จะมีวิธีการ debug อย่างไรครับ

เช่น ลากบอทเข้ากลุ่ม ถ้าไม่ได้เป็นเพื่อนกับบอทก็จะได้แค่ userId ดังนั้นอาจจะให้เข้า add เพื่อนกับบอทมาก่อน

API Getting user profiles ทำไม pictureUrl ตอนอัพเดต รูปไลน์ในโปรไฟล์ไลน์ ถึงไม่ใช้ url เดิม จะได้ไม่ต้องยิง api ไปบ่อยๆสามารถเก็บถาวรได้ที่ ฐานข้อมูล โดยที่ไม่ต้อง get pictureUrl บ่อยๆ

เกิดจาก user เปลี่ยนรูป profile ตัวอย่าง use case เช่นของ ThaiPBS จะมีการเก็บ data ของ user ไปตอนแรก พอ user เปลี่ยนรูป link เดิมที่เก็บไว้มันจะเปิดรูปนั้นไม่ได้อีกแล้ว ทางแก้คือ ยิงไป get pictureUrl ไปเก็บไว้วันละครั้งพอ เวลาตีสอง เพราะคนใช้งานน้อย + server ไม่ต้องโหลดเยอะ และอาจจะดูเรื่อง cache ด้วย

เราสามารถกำหนดสิทธิ์ user ในเข้าถึง chat ที่ผูกกับ line myshop ได้มั้ยคะ

หน้า chat เราไม่สามารถ block ในตัว OA ได้ แต่ทำได้เพียงอย่าไปคุยกับเขา ส่วน admin เป็นสิทธิเดียวกับใน OA ปกติเลย

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

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

สุดท้าย feedback จ้า สแกน QR Code ไปตอบได้ที่นี่จ้า

ขอบคุณกิจกรรมดีๆแบบนี้นะคะ ไลฟ์แบบนี้ก็สะดวกกับทุกคนน้าาาา

ปล. เขียนจบแล้ว เหนื่อยจริงๆ และกดคอร์สเรียนเมื่อวานไปหล่ะ เดี๋ยวเรียนแล้วสรุปให้ฟังเนอะ


อย่าลืมกด like กด share บทความกันด้วยนะคะ :)

Posted by MikkiPastel on Sunday, 10 December 2017

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.