เคยคิดไหมว่า…ถ้าวันหนึ่งเรา “จากไปอย่างไม่ทันตั้งตัว”
คนที่อยู่ข้างหลังจะรู้ไหมว่าเรามีอะไรซ่อนอยู่บ้าง?
เช่น
- ประกันชีวิตที่สมัครออนไลน์ไว้โดยไม่มีตัวแทน
- สิทธิ์ผลประโยชน์จากบัตรเครดิตเมื่อเกิดเหตุไม่คาดฝัน
- หรือแม้แต่รหัสผ่าน บัญชีออนไลน์ เอกสารส่วนตัวที่เราไม่เคยบอกใคร
Secret Keeper จึงถือกำเนิดขึ้น — ระบบ “สั่งเสียดิจิทัล” ที่จะเปิดเผยความลับเฉพาะเมื่อถึงเวลาจริง ๆ
ในวันที่เรา “ไม่ได้อยู่บนโลกนี้แล้ว” ระบบจะทำหน้าที่ส่งข้อมูลที่เตรียมไว้ให้คนที่เราไว้วางใจโดยอัตโนมัติ
ทั้งเอกสาร Google Docs และโฟลเดอร์บน Google Drive ที่เราเตรียมไว้ — เพื่อให้คนข้างหลังเข้าถึงข้อมูลสำคัญได้โดยไม่ต้องมานั่งค้นหา


สามารถนำโค้ด Secret Keeper เพื่อไปติดตั้งเองได้ที่นี่
https://github.com/kengjirayus/Secret_Keeper
💡 แนวคิดของระบบ
แนวคิดของ Secret Keeper คือ ใช้เครื่องมือฟรีทั้งหมด และทำงานในรูปแบบ Serverless เพื่อไม่ต้องมีค่าใช้จ่ายใด ๆ ในการดูแลเซิร์ฟเวอร์ โดยระบบทำงานบน
- Google Apps Script (GAS) — ใช้จัดการเอกสาร, ตรวจเช็กสถานะชีวิต, ส่งอีเมล
- LINE Official Account (OA) — ใช้เป็นช่องทางติดต่อผู้ใช้หลัก และเตือนให้ “เช็กอินว่ายังมีชีวิตอยู่”

หลักการคือ
- สร้างเอกสารข้อความสั่งเสียใน Web App (พิมพ์ Register หรือ Create) จากนั้นกรอกข้อมูลใน Form ให้ครบ
- ผู้ใช้จะได้รับข้อความจาก LINE OA ทุก ๆ x วัน (กำหนดเองได้)
- หากคลิกเช็กอินจาก LINE → ระบบจะบันทึกว่ายังมีชีวิตอยู่
- หากเลยกำหนดและพ้นช่วง “Grace time”(ระยะเวลาผ่อนผัน) แล้วไม่เช็กอิน → ระบบจะถือว่าเจ้าของบัญชี “ไม่อยู่แล้ว”
- ระบบจะส่งอีเมลไปยังบุคคลที่ถูกกำหนดไว้ พร้อมแชร์เอกสารหรือโฟลเดอร์ Google Drive โดยอัตโนมัติ
🕵️♀️ หมายเหตุ: เพื่อความปลอดภัย ไม่ควรบอก Basic ID ของ LINE OA เพื่อป้องกันคนมาติดตามเพิ่มและเห็นข้อความทั้งหมด และควรจำไว้ว่าหากมีคนมา Add LINE OA เพิ่มขึ้น โควต้าข้อความฟรีของ LINE OA ก็จะลดลงตามสัดส่วน (Free Package ส่งได้ 300 ข้อความ/เดือน) — เพียงพอต่อการส่งวันละ 1 ครั้ง
🧩 การติดตั้งและเริ่มต้นใช้งาน

แม้จะฟังดูซับซ้อน แต่จริง ๆ แล้วการติดตั้ง Secret Keeper ใช้เพียงบัญชี Google กับ LINE Developer เท่านั้น
คุณสามารถทำได้เองภายในไม่กี่ขั้นตอน
🔹 ขั้นตอนที่ 1 — เตรียม LINE Official Account (OA)
- สมัครหรือเข้าสู่ระบบที่ LINE Developers Console
- สร้าง Messaging API Channel
- จดจำค่าต่อไปนี้ไว้:
- Channel Access Token (แบบ long-lived)
- Channel Secret
- Your LINE User ID
💡 คุณจะใช้ค่าพวกนี้เชื่อมต่อกับ Google Apps Script ภายหลัง
🔹 ขั้นตอนที่ 2 — ติดตั้งบน Google Apps Script (GAS)
- ไปที่ script.google.com แล้วสร้างโปรเจกต์ใหม่
- วางไฟล์ secret_keeper.js และ onboard.html ลงในโปรเจกต์
เปิดเมนู Project Properties > Script Properties แล้วเพิ่มค่าเหล่านี้:- LINE_CHANNEL_ACCESS_TOKEN
- LINE_CHANNEL_SECRET
- ADMIN_EMAIL (อีเมลผู้ดูแลระบบ/emailที่จะใช้ส่งออก)
- BASE_WEBAPP_URL (จะใส่หลังจาก Deploy เสร็จ)
- LINE_user_ID (LINE OA ID ที่สร้าง ไม่ใช่ LINE ส่วนตัว)
- EMAIL_SENDER_NAME (ชื่อผู้ส่งอีเมล หากไม่ใส่ผู้รับจะได้รับเป็น email address อย่างเดียว)
- กด Deploy > New deployment
- Type: Web App
- Execute as: Me (owner)
- Who has access: Anyone (หรือ Anyone with Google Account)
- คัดลอก URL ที่ได้มาวางใน Script Properties เป็น BASE_WEBAPP_URL
สร้าง Trigger ให้ฟังก์ชัน scheduledCheck ทำงานอัตโนมัติทุกวัน (หรือระยะเวลาที่ต้องการ) แนะนำให้ตั้ง Trigger ให้เท่ากับชั่วโมงของ Grace Time เช่น
เราตั้งเช็กอินไว้ทุกๆ 1 วัน และหน่วงเวลา(Grace time) เป็น 12 ชม. ให้ตั้ง Trigger เป็น Every 12 Hours เป็นอย่างมากนะครับ
ถ้าหากเราไปตั้งค่า Trigger เป็น Day timer เท่ากับเวลาเช็กอิน มันจะมีช่องว่างของ Trigger Latency ไปอีก 12 ชม. เท่ากับว่าต้องรอไปอีกวันกว่าระบบจะเริ่มส่งอีเมล หรือเราจะตั้งให้ถี่กว่า 12 ชม. เป็น 6 , 4 , 2 ชม. ก็ไม่มีปัญหา แต่อาจจะกระทบโควต้าการเรียกของ Google Apps Script 90 นาที/วัน เท่านั้นเอง
🔹 ขั้นตอนที่ 3 — เชื่อมต่อกับ LINE OA
- กลับไปที่ LINE Developers Console
- วาง URL จากข้อก่อนหน้า (BASE_WEBAPP_URL) ลงในช่อง Webhook URL
- เปิดการใช้งาน Webhook
ทดสอบโดยกด Verify หรือส่งข้อความ “register” หรือ “list” ไปยัง LINE OA ของคุณ
ถ้าระบบตอบกลับ แปลว่าการเชื่อมต่อสมบูรณ์แล้ว ✅
🔹 ขั้นตอนที่ 4 — (ทางเลือก) ใช้ Cloud Run หาก Webhook ของ LINE ไม่ถึง GAS
บางครั้ง LINE Webhook อาจไม่สามารถเข้าถึง GAS โดยตรงได้ (เช่นติด header policy , ตอบ status 200 แต่มีติด 302 มาด้วย, timeout และอื่นๆ)
คุณสามารถใช้ Cloud Run จาก Google Cloud Platform (GCP) เป็นตัวกลางได้ โดยใช้ไฟล์ index.js และ package.json จากโปรเจกต์นี้ ซึ่งการเรียกใช้งาน Free Tier ก็เพียงพอ
เมื่อ Deploy เสร็จ ให้นำ URL ของ Cloud Run ไปใส่ในช่อง Webhook ของ LINE Developer แทน
🧠 การทำงานเบื้องหลัง
Secret Keeper จะบันทึกข้อมูลการสร้างเอกสารลงใน Google Sheet ของเจ้าของ Account ซึ่งทำหน้าที่เสมือนฐานข้อมูลกลางของระบบทั้งหมด ทุกครั้งที่ผู้ใช้ลงทะเบียน สร้าง “vault” หรืออัปเดตข้อมูล ระบบจะบันทึกและตรวจสอบจาก Sheet โดยอัตโนมัติ
ในส่วนของการโต้ตอบกับผู้ใช้ ระบบใช้ LINE Flex Messages เป็นอินเทอร์เฟซหลัก เช่น
- Register/Create สำหรับเริ่มต้นสร้างเอกสารสั่งเสีย
- Checkin สำหรับเช็กอินต่ออายุเวลา “ไม่ให้เริ่ม” ส่งอีเมล
- Deactivate สำหรับยกเลิกหรือหยุดระบบชั่วคราว
- List สำหรับดูรายการเอกสารที่มีอยู่
- Help หรือ พิมพ์คำอื่นๆที่ไม่อยู่ในรายการ เพื่อแสดงเมนูให้เลือกทำรายการ
โดยใช้ Postback Actions เพื่อให้ผู้ใช้สามารถ “เช็กอิน” ได้สะดวกจากใน LINE โดยตรง โดยไม่ต้องเปิดหน้าเว็บหรือเข้าดู Google Sheet เอง

💡TIP: คำ Register, Create, Checkin, Deactivate และ List คุณสามารถสร้าง LINE RICH Menu ไว้กดง่ายๆ ได้เช่นกัน
อย่างไรก็ตาม เจ้าของก็สามารถ แก้ไขหรืออัปเดตข้อมูลใน Google Sheet ได้โดยตรง ชื่อไฟล์ VaultIndex เช่น ปรับวันเช็กอินหรือเปลี่ยนรายชื่อผู้รับความลับ หรือแม้กระทั่งลบข้อมูลเพื่อทำการสร้างใหม่หรือยกเลิกก็ได้เช่นกัน
ในกรณีที่พ้นกำหนดการเช็กอินตามปกติแล้ว ระบบจะเข้าสู่ขั้นตอน “การแจ้งเตือนฉุกเฉิน” (Emergency Reminder) ภายในช่วงเวลาผ่อนผัน (Grace Time)
ระบบจะทำการแจ้งเตือนไปยังเจ้าของ Vault ผ่าน LINE OA พร้อมกันกับ อีเมล (Gmail) โดยอัตโนมัติ การดำเนินการนี้มีจุดประสงค์เพื่อให้มั่นใจได้ว่าเจ้าของ Vault จะได้รับลิงก์สำหรับ Check-in ฉุกเฉินอย่างแน่นอน ไม่ว่าช่องทาง LINE จะขัดข้องหรือมีปัญหาชั่วคราวก็ตาม ซึ่งช่วยให้การทำงานของระบบยังคงต่อเนื่องและเพิ่มความน่าเชื่อถือในการยืนยันตัวตนก่อนการเปิดเผยความลับ
และแม้ว่าระบบจะเปิดเผยความลับไปแล้ว — แต่ก็ยังมีข้อความ LINE OA และ อีเมล ไปยังเจ้าของเอกสารอีกครั้ง เพื่อให้ทราบว่าเอกสารได้ถูกเปิดเผยไปแล้ว ในกรณีเกิดข้อผิดพลาดโดยไม่ตั้งใจ เช่น ลืมเช็กอิน เจ้าของเอกสารยังสามารถไปยับยั้งโดยยกเลิกการแชร์ Google Docs และ Google Drive หรือลบเอกสารได้ เอกสารก็ยังไม่ถูกเปิดเผย หากสามารถแก้ไขได้ทันเวลาก่อนผู้รับเปิดอ่าน
🪶 บทส่งท้าย
Secret Keeper ไม่ได้ถูกสร้างขึ้นเพื่อพูดถึง “ความตาย”
แต่เพื่อให้ “ความจริงหลังจากนั้น” ไม่กลายเป็นเรื่องยุ่งยากสำหรับคนที่เรารัก
มันคือระบบเล็ก ๆ ที่ตั้งใจทำหน้าที่แทนใจเรา —
เพื่อส่งต่อข้อมูลสำคัญและข้อความสุดท้ายในเวลาที่เหมาะสม
อย่างไรก็ตาม พินัยกรรมออนไลน์ เอกสารหรือข้อมูลที่สร้างขึ้นภายในระบบนี้ “ไม่ถือเป็นพินัยกรรมตามกฎหมายไทย”
แม้จะมีข้อความ ระบุชื่อ หรือลายเซ็นในรูปแบบดิจิทัลก็ตาม
เนื่องจาก ประมวลกฎหมายแพ่งและพาณิชย์ มาตรา 1655–1660
กำหนดให้ “พินัยกรรม” ต้องอยู่ในรูปแบบที่กฎหมายรับรอง เช่น
- เขียนด้วยลายมือตนเองทั้งหมด (ไม่ต้องมีพยาน)
- พิมพ์/พิมพ์ดีด/พิมพ์ด้วยคอมพิวเตอร์ และ มีพยานอย่างน้อย 2 คนลงชื่อกำกับ
ดังนั้น Secret Keeper จึงควรถูกมองว่าเป็น ระบบช่วยเก็บข้อมูลส่วนตัวหรือความลับส่วนสุดท้าย
ไม่ใช่เครื่องมือสำหรับจัดทำพินัยกรรมทางกฎหมายโดยตรง
หากต้องการทำพินัยกรรมที่มีผลตามกฎหมาย ควรปรึกษาทนายความหรือผู้เชี่ยวชาญด้านกฎหมายโดยเฉพาะ
📩 หากต้องการดูตัวอย่างการตั้งค่าหรือให้ช่วยตรวจสอบการเชื่อมต่อระบบ
สามารถติดต่อมาได้ครับ — ยินดีช่วยให้ระบบของคุณพร้อมใช้งานได้อย่างถูกต้องและปลอดภัย
⚖️ ข้อความนี้ไม่ถือเป็นคำปรึกษาทางกฎหมาย โปรดปรึกษาทนายความหากต้องการจัดทำพินัยกรรมอย่างเป็นทางการ

อยากจะเขียนอะไรก็เขียนอ่ะครับ แต่มีผู้ช่วยเขียนเป็น A.I. หากเขียนผิดหรือตกหล่นไปก็ขออภัยล่วงหน้านะครับ



