BotKit
บทความ › n8n และระบบอัตโนมัติ

TikTok Content Posting API: แอปยังไม่ผ่าน audit ทำอะไรได้ และเคสโดนปฏิเสธเพราะเว็บเปิดไม่ได้

ถ้าอยากให้ระบบของเราโพสต์คลิปลง TikTok ได้เอง ต้องใช้ Content Posting API และต้องผ่านการตรวจแอปของ TikTok ก่อน แอปแรกของผมโดนปฏิเสธด้วยเหตุผลที่ไม่เกี่ยวกับโค้ดเลย: เว็บไซต์ที่กรอกไว้เปิดไม่ได้ บทความนี้สรุปว่าแอปที่ยังไม่ผ่าน audit ทำอะไรได้แค่ไหน และต้องเตรียมอะไรก่อนยื่น

ด่านมีสองชั้น อย่าสับสน

  1. App review ตอนสร้างแอป — TikTok ตรวจข้อมูลแอป (เว็บไซต์ นโยบาย ไอคอน คลิปสาธิต) ก่อนให้เปิดใช้ product อย่าง Login Kit และ Content Posting API
  2. Audit ของ Content Posting API — ตรวจว่าใช้งานตามข้อกำหนด เพื่อปลดข้อจำกัดของแอปที่ยังไม่ผ่าน audit

แอปที่ยังไม่ผ่าน audit ทำอะไรได้

  • โพสต์ได้เฉพาะแบบ SELF_ONLY (เห็นแค่เจ้าของบัญชี)
  • โพสต์ผ่านแอปได้ไม่เกิน 5 บัญชีในช่วง 24 ชั่วโมง
  • บัญชีที่โพสต์ต้องตั้งเป็นส่วนตัว (private) ตอนโพสต์

ข้อจำกัดนี้พอสำหรับทดสอบว่าโค้ดทำงานครบลูป (ล็อกอิน → อัปโหลด → เห็นคลิปส่วนตัวในแอป TikTok) แต่ใช้ขายบริการโพสต์ให้ลูกค้าจริงไม่ได้ ให้ตั้งค่าตั้งต้นในโค้ดเป็น SELF_ONLY ไว้ก่อน ไม่อย่างนั้นจะเจอ error ทุกครั้งที่ลองโพสต์แบบสาธารณะ

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

เคสจริง: โดนปฏิเสธเพราะเว็บตาย

ตอนกรอกข้อมูลแอป ผมใส่ Website URL, Privacy Policy, Terms of Service และ Redirect URI ชี้ไปที่เว็บทดลองบนโฮสต์ฟรี ซึ่งต่อมาถูกลบไป ทุก URL จึงตอบ 404 แอปโดนปฏิเสธด้วยเหตุผลข้อเดียวคือเปิดเว็บไม่ได้ ทั้งที่ส่วนอื่นผ่านหมด

สิ่งที่แก้:

  1. สร้างหน้าแนะนำแอป, หน้า privacy และหน้า terms บนโดเมนที่ใช้งานจริงและดูแลอยู่
  2. เปลี่ยน URL ทั้ง 4 ช่องในพอร์ทัลให้ชี้หน้าใหม่
  3. เช็คว่าโดเมนในคลิปสาธิตตรงกับโดเมนที่กรอก
  4. เปิดทุก URL จากเครื่องอื่นให้แน่ใจว่าได้ 200 ก่อนกดยื่นใหม่
💡 อย่าใช้เว็บที่อาจถูกลบ (เช่นโฮสต์ทดลองฟรีที่ลบเมื่อไม่ได้ใช้) เป็น URL ของแอปบนแพลตฟอร์มใหญ่ และอย่าลบหน้าเหล่านี้ทิ้งหลังผ่านแล้ว แพลตฟอร์มตรวจซ้ำได้

เช็คลิสต์ก่อนยื่น

  • Website, Privacy Policy, Terms of Service เปิดได้จริงบนโดเมนของเรา
  • ยืนยันความเป็นเจ้าของโดเมนในพอร์ทัล (ถ้าจะใช้การดึงวิดีโอจาก URL ต้องยืนยันโดเมนนั้นด้วย ไม่อย่างนั้นใช้วิธีอัปโหลดไฟล์ตรงแทน)
  • Redirect URI ตรงกับที่โค้ดใช้ทุกตัวอักษร
  • ขอ scope เท่าที่ใช้: โพสต์คลิป (video.publish และ/หรือ video.upload) และ user.info.basic สำหรับแสดงชื่อบัญชีที่เชื่อมไว้
  • คลิปสาธิตแสดงครบ: ล็อกอิน TikTok → เลือกคลิป → ใส่แคปชั่น → โพสต์ → เห็นผลในแอป TikTok
  • เขียนอธิบายว่าผู้ใช้โพสต์คลิปของตัวเองลงบัญชีของตัวเอง และเลือกคลิปกับแคปชั่นเองทุกครั้งก่อนโพสต์

เรื่อง secret

Client Secret ต้องอยู่ในไฟล์ .env หรือตัวแปรสภาพแวดล้อมเท่านั้น และใส่ .env ใน .gitignore ถ้า secret เคยถูกวางในแชทหรือที่อื่น ให้กดรีเซ็ตในพอร์ทัลแล้วใช้ค่าใหม่

ทางเลือกถ้ายังไม่อยากยื่น audit

เครื่องมือตั้งเวลาโพสต์แบบเสียเงินบางเจ้าผ่านการอนุมัติของแพลตฟอร์มไว้แล้ว ใช้ผ่านบริการคลาวด์ของเขาได้เลย แต่ถ้าเป็นแบบ self-host ส่วนใหญ่ยังต้องใช้แอปของเราเอง (ดู Postiz self-host)

เกี่ยวกับผู้เขียน — Jark นักพัฒนา LINE Bot และระบบ AI อัตโนมัติ อยู่เชียงใหม่ ทำระบบตอบแชทและจองคิวให้ร้านค้าจริง บทความในเว็บนี้มาจากงานที่ลงมือทำเอง อ่านเพิ่ม