PPURIPAT
HOME/BLOG
↩ BACK

แจกระบบจดรายรับ-รายจ่ายผ่าน LINE ฟรี ติดตั้งเองได้ใน 5 นาที

แจกโค้ด Google Apps Script บอท LINE จดรายรับ-รายจ่าย copy-paste วางในโปรเจกต์ของตัวเอง ไม่ต้องรู้ tech เยอะก็ใช้งานได้จริงภายใน 5 นาที

BY
PURIPAT
PUBLISHED
2026.07.08
READ TIME
4 MIN
WORDS
683
GHXIN
แจกระบบจดรายรับ-รายจ่ายผ่าน LINE ฟรี ติดตั้งเองได้ใน 5 นาที
FIG. — จดรายจ่ายผ่าน LINE พิมพ์ปุ๊บ บอทตอบกลับพร้อมยอดรวมเดือนนี้SOURCE: AUTHOR
แชท LINE พิมพ์ "ข้าว 200" แล้วบอทตอบกลับพร้อมหมวดหมู่และยอดรวมเดือนนี้
แชท LINE พิมพ์ "ข้าว 200" แล้วบอทตอบกลับพร้อมหมวดหมู่และยอดรวมเดือนนี้
FIG. 01 — พิมพ์ในแชท บันทึกลง Sheet ทันที

§01แจกฟรี — จดรายรับรายจ่ายผ่าน LINE

สำหรับ Blog นี้จะแจกระบบ จดจ่าย Bot เป็นการจดรายรับ-รายจ่าย โดยเน้นวิธีง่ายๆ ไม่ได้ใช้ tech มากมาย เพื่อเป็นการเรียนรู้พื้นฐานก่อนที่จะไปทำท่ายากต่อไป ในบล็อกนี้แค่ copy โค้ดไปวางใน Google Apps Script ของตัวเอง ก็พร้อมใช้เลยครับ

ถ้าอยากรู้ว่าบอทนี้ถูกสร้างขึ้นมายังไงทีละขั้นตอน — ถ้ามีคนสนใจเยอะ จะเล่าให้ฟังตั้งแต่เริ่มจนจบในบล็อกถัดไป หรือใครใจร้อนอยากเรียนรู้เองได้ที่ CLAUDE.md เลยครับ


§02ทำงานยังไงคร่าวๆ

ทั้งระบบรันอยู่ใน Google Apps Script ตัวเดียว ไม่มี server แยก ไม่มี database แยก ไม่มี AI ไม่มี OCR — เป็น rule-based ล้วนๆ ทุกอย่างจบภายในคำขอเดียว ไม่มี queue ไม่มี background job

  • LINE ส่งข้อความเข้า webhook — พิมพ์อะไรในแชท LINE จะยิง event เข้า doPost(e) ของ Apps Script ทันที
  • Parser แยกรายการ — พิมพ์หลายรายการคั่นด้วยจุลภาคหรือขึ้นบรรทัดใหม่ได้ (เช่น ข้าว 100, น้ำ 50) ระบบแยกเป็นรายการย่อยแล้วอ่านทีละอัน โดยดึง ตัวเลขตัวสุดท้าย ในแต่ละรายการมาเป็นจำนวนเงิน ส่วนที่เหลือคือคำอธิบาย ถ้าขึ้นต้นด้วย + จะถูกตีเป็นรายรับ
  • จับคู่หมวดหมู่จาก Sheet — เทียบคำอธิบายกับ sheet Categories แบบ substring match ได้หมวดหมู่กลับมา และถ้าแถวนั้นตั้ง type เป็น income ระบบจะสลับเป็นรายรับให้อัตโนมัติแม้ไม่ใส่ + — จุดนี้แก้ที่ Sheet ตรงๆ ได้เลย ไม่ต้องแตะโค้ด
  • บันทึกลง Sheet — แต่ละรายการกลายเป็นแถวใหม่ใน sheet Records (เวลา, คำอธิบาย, จำนวนเงิน, ประเภท, หมวดหมู่, ข้อความดิบ)
  • ตอบกลับพร้อมยอดรวม — ก่อนตอบ ระบบรวมยอดรับ/จ่ายของเดือนนี้ (นับตาม timezone Asia/Bangkok) แล้วตอบกลับทันทีด้วย LINE reply message ซึ่งฟรีและไม่กินโควต้า push

พิมพ์ปุ๊บ เห็นแถวใหม่ใน Sheet ปั๊บ — ไม่มีอะไรซับซ้อนกว่านี้แล้ว


§03สิ่งที่ต้องมีก่อน

  • บัญชี Google (สำหรับสร้าง Sheet + Apps Script)
  • บัญชี LINE Official Account พร้อม Messaging API channel และ channel access token (ตัวยาว จาก tab Messaging API ใน LINE Developers Console)

§04ขั้นตอน

  1. สร้างโปรเจกต์ใหม่: เปิด Google Sheets ใหม่ → ExtensionsApps Script

  2. Copy โค้ด: เปิดไฟล์ dist/Code.gs ใน repo นี้บน GitHub → กด Raw → เลือกทั้งหมด copy → กลับไปที่ Apps Script editor → ลบโค้ดเดิมในไฟล์ Code.gs ทั้งหมด → วางโค้ดที่ copy มาแทน

  3. ใส่ token ของตัวเอง: หาบรรทัดแรกๆ ที่เขียนว่า

    const LINE_CHANNEL_ACCESS_TOKEN = '';

    แก้เป็น token จริงของคุณ เช่น

    const LINE_CHANNEL_ACCESS_TOKEN = 'your-real-token-here';

    ⚠️ ห้าม เอาไฟล์ที่มี token จริงไป commit ขึ้น git หรือแชร์ต่อสาธารณะเด็ดขาด — ถ้าจะแชร์โค้ดต่อ ให้ลบ token ออกก่อน

  4. ตั้ง timezone: ⚙️ (Project Settings) → General settings → Time zone → เลือก (GMT+07:00) Bangkok — จำเป็นสำหรับให้ยอดรวมรายเดือนคำนวณถูกช่วงเวลา

  5. Deploy เป็น Web app: ปุ่ม DeployNew deployment → เลือกประเภท Web app

    • Execute as: Me
    • Who has access: Anyone — ⚠️ ต้องเลือก "Anyone" เฉยๆ ไม่ใช่ "Anyone with Google account" (สองอันนี้หน้าตาคล้ายกันมากแต่ทำงานคนละแบบ — ถ้าเลือกผิดบอทจะเงียบ ไม่ตอบอะไรเลย)
    • กด Deploy แล้ว copy URL ที่ลงท้ายด้วย /exec
  6. เชื่อม LINE webhook: ไปที่ LINE Developers Console → channel ของคุณ → tab Messaging API → ช่อง Webhook URL → วาง URL จากข้อ 5 → กด Verify → เปิดสวิตช์ Use webhook

    💡 ถ้า Verify ขึ้น error แปลกๆ เกี่ยวกับ redirect (เช่น 302) ทั้งที่ตั้งค่าถูกทุกอย่าง — บางครั้งเป็นแค่ปุ่ม Verify ที่เข้มงวดเรื่อง redirect มากกว่าการส่งข้อความจริง ลองแอดบอทเป็นเพื่อนแล้วส่งข้อความจริงดูก่อนจะสรุปว่าพัง

    หน้าจอ LINE Developers Console ช่อง Webhook URL พร้อมปุ่ม Verify
    หน้าจอ LINE Developers Console ช่อง Webhook URL พร้อมปุ่ม Verify
    FIG. 02 — ช่อง Webhook ใน LINE Developers Console
  7. ปิด auto-reply: ใน LINE Official Account Manager → ตั้งค่าแชท → ปิด auto-reply / greeting message (ไม่งั้นบอทจะตอบซ้อนกับข้อความอัตโนมัติ)

  8. ทดสอบ: แอดบอทเป็นเพื่อน (QR code ใน LINE Developers Console) แล้วพิมพ์ ข้าว 200 — ควรได้คำตอบกลับมาพร้อมหมวดหมู่และยอดรวมเดือนนี้ และมีแถวใหม่โผล่ใน Google Sheet ที่ผูกกับสคริปต์

  9. สำหรับรายรับจะใช้ keyword ที่ดักไว้ เช่น เงินเดือน 20000

แถวใหม่โผล่ใน Google Sheet ทันทีหลังพิมพ์ข้อความใน LINE
แถวใหม่โผล่ใน Google Sheet ทันทีหลังพิมพ์ข้อความใน LINE
FIG. 03 — ทุกข้อความที่บอทรับ ถูกบันทึกลง Sheet แบบเรียลไทม์

§05ปรับแต่งได้ตรงไหน

  • เพิ่ม/แก้หมวดหมู่ — ไปที่ sheet Categories เพิ่มแถว keyword | category | type ได้เลย เช่น ชาไข่มุก | เครื่องดื่ม | expense — ไม่ต้องแตะโค้ด ไม่ต้อง deploy ใหม่ พิมพ์ปุ๊บระบบจับหมวดหมู่ถูกทันที
  • ทำให้คำไหนกลายเป็นรายรับอัตโนมัติ — ตั้ง type ของแถวนั้นใน Categories เป็น income (เช่น เงินเดือน, ค่าคอม) ผู้ใช้ไม่ต้องจำใส่ + ทุกครั้ง
  • จดหลายรายการทีเดียว — คั่นด้วยจุลภาคหรือขึ้นบรรทัดใหม่ เช่น ข้าว 100, น้ำ 50 หรือพิมพ์คนละบรรทัด บอทแยกให้เองแล้วตอบเป็น bullet list พร้อมยอดรวมท้ายข้อความ
  • อยากแก้รูปแบบคำตอบ หรือเพิ่มคอลัมน์ใน Records — แก้ตรงนี้ต้องลงโค้ดใน Code.gs เอง เพราะเป็น logic ไม่ใช่ data — ถ้าอยากรู้ว่าโค้ดส่วนไหนทำอะไร รอติดตามบล็อกถัดไปที่จะเล่าเบื้องหลังการสร้างทั้งหมด
FIG. 04 — ปรับแต่งหมวดหมู่

§06ข้อจำกัด

ระบบนี้ตั้งใจทำให้ง่ายและฟรีที่สุด เลยมีข้อแลกเปลี่ยนที่ควรรู้ก่อนใช้จริง:

  • ใช้คนเดียว — ไม่มีระบบแยกผู้ใช้หรือ auth ถ้าแชร์บอทตัวเดียวกันหลายคนพิมพ์ ยอดจะถูกรวมเป็นก้อนเดียวกันหมด
  • ไม่มี AI ไม่มี OCR — อ่านใบเสร็จไม่ได้ ต้องพิมพ์รายการเองทุกครั้ง เป็น rule-based ล้วนๆ ตามที่ตั้งใจไว้ตั้งแต่แรก
  • อ่านทั้งชีตทุกครั้งที่คำนวณยอดรวม — โอเคสำหรับใช้งานส่วนตัวที่มีข้อมูลหลักร้อย-หลักพันแถว แต่ไม่เหมาะกับการ scale เป็นระบบหลายคนใช้พร้อมกัน
  • ติดโควต้าฟรีของ Google Apps Script — ใช้คนเดียวสบายๆ ไม่มีทางชน แต่ถ้าจะเอาไปทำอะไรที่เรียกถี่มากๆ ควรเช็ค quota ของบัญชีตัวเองก่อน
  • รับได้แค่ข้อความ — รูปภาพ, สติกเกอร์, เสียง, ตำแหน่ง จะได้แค่คำตอบแจ้งว่าใช้งานไม่ได้ ไม่มีการประมวลผลใดๆ เพิ่มเติม

§07ถ้าไม่ทำงาน

  • บอทเงียบทั้งที่ Verify ผ่าน → เช็ค auto-reply (ข้อ 7) และเช็คว่า token ในโค้ดถูกต้อง (ตัวยาวจาก Messaging API tab ไม่ใช่ channel secret)
  • Verify ไม่ผ่านเลย → เช็คว่าเลือก "Anyone" ไม่ใช่ "Anyone with Google account" (ข้อ 5)
  • ยอดรวมเดือนผิด → เช็ค timezone (ข้อ 4)

§08สรุป

Blog นี้เป็น step ง่ายๆ ที่เราได้เรียนรู้การทำงานของ Sheets และ Apps Script เชื่อมต่อกับ LINE แบบง่ายที่สุด หวังเป็นอย่างยิ่งว่าผู้อ่านจะได้รับความรู้ไปต่อยอด ทำระบบที่ซับซ้อนมากขึ้นได้

เนื้อหาถัดไป

  • 🎯 เบื้องหลังการสร้าง: เล่าทีละขั้นตอนว่าบอทนี้ถูก build ขึ้นมายังไงตั้งแต่ศูนย์ ด้วย Claude Code

💬 ถ้ามีคำถาม comment ใต้วิดีโอ หรือเปิด issue ใน GitHub repo ครับ

— FIN —P. 01 / 01 · 683 WORDS
WRITTEN BY
P
Puripat
@PURIPAT · ENG / WRITER

Engineer, writer, occasional GPU-melter. Writes every Sunday about applied AI — agents, evals, and whatever broke that week.

SHARE THIS

If you got something out of this, share it with someone who's trying to ship their first agent.

← PREV
01 · DigiVend สร้างร้านขายสินค้า Digital จ่าย QR ได้ไฟล์เลย
2026.06.29
NEXT →
04 · เปลี่ยน PDF แคตตาล็อกของคุณให้พลิกได้แบบหนังสือจริง ๆ — ฟรี ไม่ต้องมีเซิร์ฟเวอร์
2026.07.18