TommyLabsTOMMYLABS
← Playground

LM-16 · คู่มือฟรี · อ่าน 14 นาที

CommentBot: คอมเมนต์ใต้โพสต์ แล้วได้ของเข้า inbox อัตโนมัติ

ระบบตอบคอมเมนต์ Facebook ที่ใช้เองกับเพจ แยกของที่แจกตามโพสต์ได้ สร้างด้วย Claude Code เสร็จภายในวันเดียว

ผมชอบโพสต์แจกของบนเพจ Tommy Talk แล้วให้คนคอมเมนต์คำสั้นๆ ใต้โพสต์ เช่น "skill" จากนั้นระบบจะทักไปส่งลิงก์ให้ใน inbox ระบบตอบกลับอัตโนมัติของ Facebook ทำแบบแยกตามโพสต์ไม่ได้ เครื่องมือแชทบอทในตลาดทำได้แต่ต้องจ่ายค่าบริการ ผมเลยให้ Claude Code เขียนระบบนี้ให้ใช้เอง คู่มือนี้เล่าแนวคิด วิธีทำงาน และขั้นตอนสร้างทั้งหมด พร้อมภาพจากระบบที่ใช้งานจริง

คลิปประกอบ: CommentBot ทำงานยังไง

จากวางแผนถึงขึ้นจริง

1 วัน

ฐานข้อมูลทั้งระบบ

3 ตาราง

ครอบคลุมจับคำไทย

29 เทสต์

ค่าฐานข้อมูล (Neon)

ฟรี

หน้าแรกของ CommentBot แสดงการ์ดแคมเปญสามใบ คอมเมนต์ล่าสุด และแคมเปญที่ได้ผลดีที่สุด
หน้าแรกของระบบ: การ์ดแคมเปญแยกตามของที่แจก ด้านล่างคือคอมเมนต์ล่าสุดพร้อมสถานะส่งแล้ว (ชื่อคนคอมเมนต์ในภาพเป็นชื่อสมมติ)(แตะที่ภาพเพื่อดูเต็ม)

ที่มา: ทำไมไม่ใช้ระบบตอบกลับอัตโนมัติของ Facebook

ระบบตอบกลับอัตโนมัติที่ Facebook มีให้ ตั้งคีย์เวิร์ดได้ชุดเดียวกับทั้งเพจ ถ้ามีโพสต์แจกของ 3 โพสต์ แล้วทุกโพสต์ให้คอมเมนต์ว่า "สนใจ" เหมือนกัน ระบบจะส่งของชิ้นเดียวกันหมด

เครื่องมือแชทบอทในตลาดทำเรื่องนี้ได้ แต่ต้องจ่ายค่าบริการ ผมเลยให้ Claude Code เขียนให้ ตั้งแต่วางแผนจนขึ้น production ภายในวันเดียว แล้วใช้กับเพจจริงต่อเลย ค่าใช้จ่ายที่เหลือคือค่าโฮสต์บน Vercel กับฐานข้อมูล Neon ซึ่งผมใช้แพ็กเกจฟรี

ทำไปทำไม: แจกของดี เพื่อให้คนที่ใช่เดินเข้ามาเอง

สิ่งที่ทำอยู่เรียกว่า lead magnet คือแจกของที่มีประโยชน์จริงให้ฟรี แลกกับการที่คนสนใจยอมเดินเข้ามาคุยกับเรา เป้าหมายของระบบนี้คือเปลี่ยน "คนที่กดไลก์แล้วเลื่อนผ่าน" ให้กลายเป็น "คนที่อยู่ใน inbox ของเพจ" ส่วนการไม่ต้องนั่งตอบคอมเมนต์เองเป็นผลพลอยได้

ทำไมคนที่เข้ามาถึงมีแนวโน้มเป็นลูกค้าเป้าหมาย

คนที่ยอมพิมพ์คำว่า "skill" เพื่อขอคู่มือ "ตัวตน x AI" คือคนที่อยากใช้ AI สร้างตัวตนบนโซเชียลอยู่แล้ว ไม่มีใครคอมเมนต์ขอคู่มือเรื่องที่ตัวเองไม่สนใจ ของที่แจกเลยทำหน้าที่คัดคนให้เราไปในตัว แต่ละแคมเปญจึงได้รายชื่อคนที่สนใจเรื่องเดียวกัน แยกกันตามโพสต์

ได้อะไรเพิ่มจากการให้คนคอมเมนต์

  • ▸คนพิมพ์ตอบใต้โพสต์ ทำให้โพสต์มีความเคลื่อนไหว คนอื่นที่ผ่านมาเห็นว่ามีคนขอกันเยอะก็อยากได้บ้าง
  • ▸ข้อความเข้า inbox เป็นจุดเริ่มบทสนทนา จากนี้เพจคุยต่อได้ ไม่ต้องรอให้ลูกค้าทักมาเอง
  • ▸ถ้าใส่ "คำตัวเลือก" ไว้ในข้อความ (เช่น "ได้รับแล้ว" หรือ "อยากรู้เพิ่ม") พอลูกค้ากด แชทจะเปิด และเพจคุยต่อได้อีก 24 ชั่วโมงตามกฎของ Messenger ส่งข้อมูลคอร์สหรือบริการที่เกี่ยวกับของที่แจกตามไปได้เลย

ของที่แจกแล้วได้ผล 4 ข้อ

  1. 01เป็นเรื่องเดียวกับสิ่งที่เราขาย ถ้าขายเวิร์กช็อป LINE OA ก็แจกคู่มือ LINE OA ถ้าแจกของที่คนทั่วไปชอบแต่ไม่เกี่ยวกับธุรกิจเรา จะได้ inbox เยอะแต่ไม่มีใครซื้อ
  2. 02ใช้ได้ทันที คู่มือ เทมเพลต prompt หรือ skill ที่เปิดแล้วทำตามได้เลย ดีกว่าบทความยาวที่ต้องอ่านอีกนาน
  3. 03ของต้องดีจริง คนที่ได้ของดีจากเราฟรี จะเชื่อว่าของที่เราขายก็น่าจะดี ถ้าแจกของห่วย เขาจะไม่เปิดข้อความถัดไปของเราอีก
  4. 04ให้คอมเมนต์คำสั้นๆ คำเดียว "skill" หรือ "สนใจ" พิมพ์ง่าย และระบบจับได้แม่น

เคล็ดลับเล็กๆ

ตั้งคำให้ต่างกันในแต่ละโพสต์ (เช่น "skill" กับ "line") เวลาย้อนดูประวัติ จะรู้ทันทีว่าคนไหนมาจากของชิ้นไหน

แนวคิดหลัก 5 ข้อ

ข้อแนวคิดความหมาย
1หนึ่งแคมเปญ = หนึ่งของที่จะแจก ผูกกับโพสต์ที่เลือกคำว่า "สนใจ" ใต้โพสต์ A ได้คู่มือ A ใต้โพสต์ B ได้คู่มือ B ถ้าไม่ตรงแคมเปญของโพสต์นั้น ค่อยไปดูแคมเปญที่ตั้งเป็น "ทุกโพสต์"
2จับคำ 3 แบบเหมือนกับ, ประโยค, และคีย์เวิร์ด (ดูตารางด้านล่าง)
3ทำสองอย่างพร้อมกันส่งข้อความเข้า inbox ของคนคอมเมนต์ แล้วตอบใต้คอมเมนต์ว่า "ส่งให้ทาง inbox แล้ว 🙏" (สุ่มจากหลายข้อความ จะได้ไม่ดูเป็นสแปม)
4ส่ง inbox ไม่ผ่าน ห้ามตอบใต้คอมเมนต์คำตอบใต้คอมเมนต์มักบอกว่าส่งของไปแล้ว ถ้าส่งไม่สำเร็จแต่ยังตอบไป ลูกค้าจะเห็นข้อความที่ไม่จริง ข้อนี้เพิ่มทีหลังหลังจากเจอเคสจริง
5เก็บข้อมูลเท่าที่ต้องใช้ระบบบันทึกเฉพาะคอมเมนต์ที่ตรงแคมเปญ คอมเมนต์ทั่วไปใต้โพสต์ไม่ถูกเก็บ

จับคำ 3 แบบ แบบเดียวกับที่คนทำเพจคุ้นมือ

แบบทำงานยังไงตัวอย่าง
เหมือนกับคอมเมนต์ต้องเป็นคำนี้พอดี ไม่นับช่องว่าง เครื่องหมาย อีโมจิตั้ง "skill" จับ "Skill 🙏" แต่ไม่จับ "skill ครับ"
ประโยคมีวลีนี้อยู่ในคอมเมนต์ พิมพ์เว้นวรรคต่างกันก็จับได้ตั้ง "สนใจ" จับ "ส น ใ จ ค่ะ"
คีย์เวิร์ดมีคำนี้อยู่ตรงไหนก็ได้ตั้ง "skill" จับ "skillครับ"

ถ้าตรงหลายแบบ ระบบเลือก "เหมือนกับ" ก่อน แล้วตามด้วย "ประโยค" แล้วค่อย "คีย์เวิร์ด" ภาษาไทยไม่เว้นวรรคระหว่างคำ คีย์เวิร์ดภาษาไทยจึงต้องจับแบบ "มีอยู่ข้างใน" ส่วนคำภาษาอังกฤษต้องเป็นคำเต็ม ไม่อย่างนั้นตั้งคำว่า "ai" แล้วจะไปจับ "said" ด้วย

ระบบทำงานยังไง

ลำดับการทำงานของระบบ
คนคอมเมนต์ "skill"
   ↓
Facebook ส่ง webhook (field: feed) มาที่ /api/webhooks/facebook
   ↓
ตรวจลายเซ็น X-Hub-Signature-256 ว่ามาจาก Meta จริง
   ↓
ตอบ 200 กลับทันที แล้วค่อยทำงานต่อเบื้องหลัง
   ↓
ข้ามคอมเมนต์ของเพจเอง / คอมเมนต์ที่แก้ไข / สติกเกอร์ล้วน
   ↓
หาแคมเปญ (โพสต์ที่เลือกก่อน → แคมเปญทุกโพสต์) แล้วจับคำ
   ↓ ไม่ตรง: จบ ไม่บันทึกอะไร
   ↓ ตรง:
กันซ้ำ (comment_id ห้ามซ้ำ / คนเดิมได้ครั้งเดียวต่อแคมเปญ)
   ↓
ส่ง Private Reply เข้า inbox → ผ่านแล้วค่อยตอบใต้คอมเมนต์
   ↓
บันทึกผล: ส่งแล้ว / ส่งได้บางส่วน / ล้มเหลว + เหตุผล

ต้องตอบ 200 ทันที

ถ้าตอบ Meta ช้า Meta จะส่ง webhook ซ้ำ และถ้าช้าบ่อยอาจปิด webhook ทิ้ง ใน Next.js ใช้ after() ให้งานรันต่อหลังส่ง response ไปแล้ว

กฎของ Facebook ที่ต้องรู้ก่อนเริ่ม

  1. 01Private Reply ส่งได้ 1 ข้อความต่อ 1 คอมเมนต์ ภายใน 7 วัน ถ้าอยากส่งทั้งรูปและลิงก์ ให้ใช้ Generic Template คือการ์ดที่มีรูป หัวข้อ และปุ่ม รวมอยู่ในข้อความเดียว
  2. 02คอมเมนต์หนึ่งอัน ใครส่งก่อนได้สิทธิ์ ถ้าเพจมีระบบอื่นตั้งแคมเปญไว้ที่โพสต์เดียวกัน ระบบที่ช้ากว่าจะได้ error (#10900) Activity already replied to
  3. 03ใส่ Quick Replies (คำตัวเลือก) ได้ พอลูกค้ากด แชทจะเปิด และคุยต่อได้ 24 ชั่วโมงตามกฎ Messenger
  4. 04แอปที่ยังอยู่ Development mode ใช้ได้แค่กับบัญชีที่มี role ในแอป ถ้าจะใช้กับคนทั่วไปแบบระยะยาว ต้องทำ Business Verification แล้วยื่น App Review ขอ Advanced Access
  5. 05สิทธิ์ที่ต้องใช้มี 6 ตัว ดูตารางด้านล่าง
สิทธิ์ (permission)ใช้ทำอะไร
pages_show_listดูรายชื่อเพจ
pages_read_engagementอ่านข้อมูลการมีส่วนร่วมของเพจ
pages_read_user_contentอ่านข้อความในคอมเมนต์
pages_manage_metadatasubscribe webhook
pages_manage_engagementตอบใต้คอมเมนต์
pages_messagingส่งข้อความเข้า inbox

เครื่องมือที่ใช้

ส่วนใช้อะไร
เว็บ + APINext.js 16 (App Router) บน Vercel
ฐานข้อมูลNeon Postgres ผ่าน Vercel Marketplace (แพ็กเกจฟรี) + Drizzle ORM
FacebookGraph API: Webhooks, Private Replies, Facebook Login
หน้าตาTailwind CSS ฟอนต์ Fredoka + Mitr
เทสต์Vitest (29 เทสต์ ครอบคลุมการจับคำภาษาไทยและลอจิกส่งข้อความ)

ฐานข้อมูลมีแค่ 3 ตาราง

ตารางเก็บอะไร
pagesเพจที่เชื่อมไว้ และ page token ที่เข้ารหัส AES-256-GCM ก่อนเก็บ
campaignsชื่อ เปิด/ปิด โพสต์ที่เลือก คำที่จับ ข้อความเข้า inbox ปุ่ม คำตัวเลือก ข้อความตอบใต้คอมเมนต์
comment_eventsประวัติคอมเมนต์ที่ตรงแคมเปญ comment_id ตั้งเป็น unique เพื่อกันส่งซ้ำตอน Meta ยิง webhook ซ้ำ

คู่มือสร้างทีละขั้น (8 ขั้น)

1

เริ่มโปรเจกต์

สร้างโปรเจกต์และฐานข้อมูล

ใช้ Vercel CLI สร้างโปรเจกต์แล้วเพิ่ม Neon ได้จากเทอร์มินัลเลย

terminal
vercel project add comment-bot
vercel link --yes --project comment-bot
vercel integration add neon -n comment-bot-db -m region=sin1 -m auth=false -p free_v3

คำสั่งสุดท้ายสร้างฐานข้อมูลที่สิงคโปร์ แล้วดึง DATABASE_URL ลง .env.local ให้อัตโนมัติ

อย่าลืม vercel.json

ถ้าสร้างโปรเจกต์ผ่าน CLI แบบนี้ ให้ใส่ vercel.json ที่มี {"framework": "nextjs"} ด้วย ไม่อย่างนั้นตอน deploy จะฟ้องว่าหาโฟลเดอร์ public ไม่เจอ

2

ตั้งค่า

ตั้งค่า env

ตัวแปรใช้ทำอะไร
META_APP_ID, META_APP_SECRETจากหน้า App settings → Basic ของ Meta App
META_VERIFY_TOKENคำลับอะไรก็ได้ ใช้ตอนยืนยัน webhook
ENCRYPTION_KEYกุญแจเข้ารหัส page token
AUTH_SECRETใช้เซ็น cookie ของหน้าแอดมิน
ADMIN_PASSWORDรหัสเข้าหน้าแอดมิน (ตั้งยาวๆ)
APP_URLURL ของเว็บ เช่น https://your-app.vercel.app

สุ่มค่าลับด้วยคำสั่งด้านล่าง แล้วใส่ทั้งใน .env.local และ Vercel

terminal
openssl rand -base64 32
vercel env add META_APP_SECRET production
3

Webhook

ทำ route รับ webhook

route เดียวรับสองงาน GET ใช้ตอนตั้งค่าครั้งแรก Meta ส่ง hub.verify_token มา ถ้าตรงกับ META_VERIFY_TOKEN ให้ตอบ hub.challenge กลับไป ส่วน POST เกิดทุกครั้งที่มีคอมเมนต์ ต้องตรวจลายเซ็นก่อนเสมอ

ตรวจลายเซ็น (TypeScript)
const expected = "sha256=" + createHmac("sha256", appSecret).update(rawBody).digest("hex");
// เทียบกับ header x-hub-signature-256 ด้วย timingSafeEqual

ต้องอ่าน body ดิบ

ต้องอ่าน body เป็นข้อความดิบ (await req.text()) ก่อน parse JSON ไม่อย่างนั้นลายเซ็นจะไม่ตรง

4

ส่งของ

ส่งของเข้า inbox และตอบใต้คอมเมนต์

Graph API
// ส่งเข้า inbox: ใช้ comment_id เป็นผู้รับ
POST /{page-id}/messages
{ "recipient": { "comment_id": "..." }, "message": { ... } }

// ตอบใต้คอมเมนต์
POST /{comment-id}/comments
{ "message": "ส่งให้ทาง inbox แล้ว 🙏" }

ฟิลด์ message เป็นได้ 3 แบบตามที่เลือกในหน้าแคมเปญ คือข้อความธรรมดา, button template (ข้อความ + ปุ่มลิงก์ได้ 3 ปุ่ม) หรือ generic template (การ์ดรูป + ปุ่ม) ใส่ {name} ในข้อความได้ ระบบแทนด้วยชื่อคนคอมเมนต์

5

เชื่อมเพจ

ปุ่ม "เชื่อมเพจ Facebook"

ขั้นตอน OAuth ที่ใช้งานได้จริงกับเพจใน Business Portfolio

  1. 01พาไปหน้าขอสิทธิ์ของ Facebook พร้อมสิทธิ์ 6 ตัวข้างบน
  2. 02แลก code เป็น user token แล้วแลกต่อเป็น token อายุยาว
  3. 03ถาม /debug_token ว่าผู้ใช้ติ๊กให้สิทธิ์เพจไหนบ้าง (ดูจาก granular_scopes)
  4. 04ดึง page token ทีละเพจด้วย GET /{page-id}?fields=name,access_token
  5. 05สั่ง POST /{page-id}/subscribed_apps ให้เพจส่ง webhook มาที่แอปเรา
  6. 06เข้ารหัส token แล้วเก็บลงฐานข้อมูล

ข้อ 3 สำคัญที่สุด

ตอนแรกผมใช้ /me/accounts ตามตัวอย่างทั่วไป แล้วได้กลับมา 28 เพจที่ไม่ได้ให้สิทธิ์ (token ใช้ไม่ได้ทุกอัน) และเพจที่ติ๊กให้สิทธิ์จริงกลับไม่อยู่ในรายชื่อ เพราะเพจนั้นอยู่ใน Business Portfolio

page token ที่ได้จาก user token อายุยาวจะไม่หมดอายุ เชื่อมครั้งเดียวใช้ได้ยาว

6

Meta App

ตั้งค่า Meta App

ไปที่ developers.facebook.com แล้วสร้างแอป จากนั้นใส่ค่าตามนี้

  1. 01App settings → Basic: ช่อง App domains ใส่โดเมนของเว็บ แล้วกด Enter ให้กลายเป็นป้าย ก่อนกด Save
  2. 02Use cases: เพิ่ม "Manage everything on your Page" แล้วเพิ่มสิทธิ์ให้ครบ 6 ตัว
  3. 03Facebook Login → Settings: Valid OAuth Redirect URIs ใส่ https://your-app.vercel.app/api/auth/facebook/callback (กด Enter อีกเหมือนกัน)
  4. 04Webhooks → Page: ใส่ Callback URL, Verify Token แล้ว Subscribe feed, messages, messaging_postbacks

ในหน้าตั้งค่าของระบบ ผมทำช่องพร้อมปุ่มคัดลอกไว้ให้ทุกค่า จะได้ไม่ต้องพิมพ์เอง ส่วน Verify Token ซ่อนเป็นจุดไว้ กดรูปตาเพื่อดู

หน้าตั้งค่าของ CommentBot แสดงเพจ Facebook ที่เชื่อมแล้ว และกล่องค่าที่ต้องคัดลอกไปใส่ใน Meta App พร้อมปุ่มคัดลอก
หน้าตั้งค่า: เพจที่เชื่อมแล้ว กับค่าที่ต้องคัดลอกไปใส่ใน Meta App ทุกช่องมีปุ่มคัดลอก(แตะที่ภาพเพื่อดูเต็ม)
7

ตั้งค่าเพจ

ตั้งค่าเพจ (ถ้าเคยใช้แชทบอทตัวอื่นมาก่อน)

  1. 01ไปที่การตั้งค่าเพจ → Advanced messaging → กด "แก้ไข" ที่แอปของเรา → เปิด "ควบคุมการสนทนา"
  2. 02ปิดแคมเปญในระบบเดิมที่ผูกโพสต์เดียวกัน หรือถอดระบบเดิมออกที่ "การผสานรวมธุรกิจ (Business integrations)"
8

ทดสอบ

สร้างแคมเปญและทดสอบ

  1. 01เข้าเว็บ → ตั้งค่า → เชื่อมเพจ Facebook → ติ๊กเพจที่จะใช้
  2. 02กด "+ แคมเปญใหม่" → เลือกโพสต์ → ใส่คำ → ใส่ข้อความเข้า inbox และข้อความตอบใต้คอมเมนต์ → เปิด ON → บันทึก
  3. 03คอมเมนต์ทดสอบด้วยบัญชีส่วนตัว (ไม่ใช่ในนามเพจ)
  4. 04ดูผลที่หน้า "ประวัติคอมเมนต์" ต้องขึ้นสถานะ "ส่งแล้ว"
หน้าแก้ไขแคมเปญ ฝั่งซ้ายตั้งคำที่ลูกค้าพิมพ์ ฝั่งขวาตั้งข้อความตอบเข้า inbox เลือกรูปแบบการตอบ และข้อความตอบใต้คอมเมนต์
หน้าแก้ไขแคมเปญ: ฝั่งซ้ายตั้งคำที่ลูกค้าพิมพ์ (ประโยค / คีย์เวิร์ด / เหมือนกับ) ฝั่งขวาตั้งข้อความเข้า inbox รูปแบบการตอบ คำตัวเลือก และข้อความตอบใต้คอมเมนต์(แตะที่ภาพเพื่อดูเต็ม)
หน้าประวัติคอมเมนต์ แสดงคอมเมนต์ที่ตรงแคมเปญ ชื่อแคมเปญ เวลา และสถานะส่งแล้วหรือส่งได้บางส่วน พร้อมเหตุผล
หน้าประวัติคอมเมนต์: เห็นว่าใครคอมเมนต์อะไร ตรงแคมเปญไหน และส่งสำเร็จหรือไม่ ถ้าส่งได้บางส่วนจะมีเหตุผลเป็นภาษาไทยกำกับ (ชื่อคนคอมเมนต์ในภาพเป็นชื่อสมมติ)(แตะที่ภาพเพื่อดูเต็ม)

ปัญหาที่เจอจริงระหว่างทำ

อาการสาเหตุวิธีแก้
Facebook ขึ้น "ไม่สามารถโหลด URL ได้" ตอนกดเชื่อมเพจApp domains / Redirect URI ว่าง พิมพ์ไว้แต่ไม่ได้กด Enterใส่ใหม่ กด Enter ให้เป็นป้าย แล้วกด Save
"Invalid Scopes: pages_read_user_content, pages_manage_engagement"แอปยังไม่มี use case ที่มีสิทธิ์สองตัวนี้เพิ่ม use case "Manage everything on your Page"
เชื่อมแล้วได้เพจที่ไม่ได้เลือก ดึงโพสต์ไม่ได้/me/accounts คืนเพจผิดชุดใช้ granular_scopes จาก /debug_token แทน (ขั้นที่ 5)
(#10) แอพอื่นกำลังควบคุมเธรดนี้อยู่ระบบแชทบอทเดิมถือสิทธิ์แชทของเพจเปิด "ควบคุมการสนทนา" ให้แอปเรา
(#10900) Activity already replied toระบบเดิมยังตั้งแคมเปญที่โพสต์เดียวกัน และตอบเร็วกว่าเรา 1 ถึง 2 วินาทีปิดหรือถอดระบบเดิม
This user cant reply to this activityคนคอมเมนต์ในนามเพจ ปิดรับข้อความ หรือคอมเมนต์ถูกลบแก้ไม่ได้ฝั่งเรา ระบบข้ามการตอบใต้คอมเมนต์ให้เอง
ลูกค้าได้คำตอบใต้คอมเมนต์ 2 รอบสองระบบตอบโพสต์เดียวกันใช้ระบบเดียวต่อโพสต์
deploy แล้วฟ้อง "No Output Directory named public"โปรเจกต์ Vercel ยังไม่รู้ว่าเป็น Next.jsใส่ vercel.json ที่มี {"framework": "nextjs"}

ผมเอา error ทุกตัวในตารางนี้ไปแปลเป็นภาษาไทยในหน้าประวัติคอมเมนต์ด้วย เห็นแล้วรู้เลยว่าต้องไปแก้ตรงไหน ไม่ต้องไปค้นรหัส error เอง

เรื่องความปลอดภัยและข้อมูล

  • ▸ตรวจลายเซ็นทุก webhook ใครยิงข้อมูลปลอมเข้ามาจะโดนตอบ 401
  • ▸page token เข้ารหัสก่อนเก็บลงฐานข้อมูล
  • ▸หน้าแอดมินล็อกด้วยรหัสผ่าน ตั้งรหัสยาวๆ เพราะหน้านี้คุมเพจได้
  • ▸เก็บเฉพาะคอมเมนต์ที่ตรงแคมเปญ
  • ▸ห้าม commit .env.local ขึ้น git

ต่อยอดได้อีก

  • ▸พอลูกค้ากดคำตัวเลือก ให้ส่งข้อความชุดถัดไป (ต้อง subscribe messages แล้วรับ event ฝั่ง Messenger)
  • ▸รองรับ Instagram ซึ่งมี Private Reply แบบเดียวกัน
  • ▸สถิติรายวันต่อแคมเปญ ว่าแต่ละโพสต์แจกของไปกี่คน
  • ▸ยื่น App Review ให้ครบ จะได้ใช้กับคนทั่วไปได้โดยไม่ต้องห่วงข้อจำกัดของ Development mode

เผยแพร่ 14 ตุลาคม 2569 · TommyLabs

อยากได้เต็มๆ? เรียนสดกับทอมมี่

คู่มือนี้เป็นแค่จุดเริ่ม
ของจริงอยู่ในห้องเรียน

คอร์สสดของทอมมี่ลงมือทำตลอดคลาส จบแล้วกลับบ้านพร้อมของจริงที่ใช้ต่อได้ทันที

Builder Labs: Builder with LINE OA

LAB-04 · 1 วัน (10:00-17:00)

Builder Labs: Builder with LINE OA

Workshop สร้างระบบธุรกิจของคุณ ผ่าน LINE OA เต็มวัน กลุ่มเล็ก 8 ท่าน กลับบ้านพร้อมระบบที่ใช้งานได้จริง 1 ระบบ

ดูรายละเอียด →

AI Agent for Everyone

LAB-01 · 2 วัน (10:00-17:00)

AI Agent for Everyone

2 วันที่เปลี่ยนวิธีที่คุณใช้ AI ไปตลอดกาล - เรียนทักษะ “สั่ง AI ให้ลงมือทำงานแทน” ที่เอาไปใช้ได้กับทุกเรื่อง ทั้งงาน ธุรกิจ และชีวิตส่วนตัว

รอประกาศเร็วๆ นี้ →

AI Avatar Storyteller

LAB-02 · 1 วัน (10:00–17:00)

AI Avatar Storyteller

เรียน 1 วัน ได้คลิปจริง 1 ตัว พร้อมทักษะสร้างสื่อด้วย AI ครบทุกด้าน

รอประกาศเร็วๆ นี้ →

ChatGPT Agent สำหรับนักขายมืออาชีพ

LAB-03 · 2 คืน (20:00-22:00)

ChatGPT Agent สำหรับนักขายมืออาชีพ

สัมมนาออนไลน์สด 2 คืนผ่าน Zoom เอกสารดูดี โปรไฟล์น่าเชื่อถือ คอนเทนต์ไม่ขาดช่วง พร้อมที่ปรึกษาที่รู้จักคุณ

ดูรายละเอียด →

IN-HOUSE อยากจัดอบรมให้ทีมในองค์กร? ดูแพ็กเกจ In-house Training →