← บทความทั้งหมด
บทช่วยสอน

เปลี่ยนชื่อ คำอธิบาย และรูปกลุ่ม WhatsApp ผ่าน API

หากต้องการเปลี่ยนชื่อ คำอธิบาย หรือรูปกลุ่ม WhatsApp ผ่าน UnifyPort ให้ส่ง POST /v1/accounts/{account_id}/groups/update-info พร้อม group_id และอย่างน้อยหนึ่งฟิลด์จาก name, description, avatar_url โดย endpoint นี้ต้องใช้สิทธิ์ผู้ดูแลกลุ่ม ส่งเฉพาะรายการที่ผู้ปฏิบัติงานตั้งใจแก้ไข แล้วอ่านข้อมูลกลุ่มอีกครั้ง อย่าถือว่าค่าตอนเปิดแบบฟอร์มยังเป็นข้อมูลปัจจุบัน

ประเด็นสำคัญ

  • ข้อมูลกลุ่มไม่ใช่ป้ายกำกับส่วนตัวใน CRM ต้องอธิบายขอบเขตก่อนบันทึก
  • ยึดบัญชีรับส่งข้อความและ ID กลุ่มที่เลือกไว้ตลอดการแก้ไข
  • ส่งการเปลี่ยนแปลงที่ชัดเจน ไม่ส่งผลการอ่านทั้งชุดกลับไปเขียน
  • ตรวจผลทีละฟิลด์ การหมดเวลาหรือไม่ได้รับ webhook ไม่ได้พิสูจน์ว่าไม่มีการเปลี่ยนแปลง

เลือกฟิลด์ให้ตรงกับงาน

คู่มือแก้ไขข้อมูลกลุ่มของ WhatsApp อธิบายวิธีแก้ไขผ่านแอป ส่วนคู่มือการตั้งค่าผู้ดูแลกลุ่ม อธิบายสิทธิ์ที่อนุญาตให้สมาชิกแก้ไขการตั้งค่ากลุ่มได้ แต่การตั้งค่าในแอปไม่ได้ขยายขอบเขตของ UnifyPort: เอกสาร Update group info ระบุว่าต้องมีสิทธิ์ผู้ดูแล

สิ่งที่ต้องการเปลี่ยนฟิลด์คำของานที่ต้องแยกออก
ชื่อกลุ่มnameชื่อเรียกส่วนตัวในกล่องข้อความ
คำอธิบายกลุ่มdescriptionทิกเก็ตบริการหรือข้อความแชต
รูปกลุ่มavatar_urlรูปโปรไฟล์ของสมาชิก

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

UnifyPort เป็น อินเทอร์เฟซที่ไม่เป็นทางการ ตารางการรองรับคำสั่งแต่ละช่องทาง ระบุการเขียนนี้สำหรับ whatsapp เท่านั้น ไม่รวม LINE, Telegram หรือช่องทางแยก whatsapp-protocol หากทีมใช้ LINE ร่วมด้วย ต้องไม่อนุมานว่าการอ่านกลุ่มหรือรับอีเวนต์กลุ่มได้หมายถึงแก้ไขกลุ่มได้ด้วย

เริ่มแบบฟอร์มจากข้อมูลที่อ่านล่าสุด

เลือกกลุ่มภายใต้บัญชีรับส่งข้อความที่ต้องการด้วย List groups และจัดการการแบ่งหน้า เก็บ id ที่ได้ไว้ สำหรับกลุ่ม conversation_id จะเท่ากับ id ชื่อเป็นค่าที่ใช้แสดง ไม่ใช่ตัวระบุที่ไม่ซ้ำกัน

จากนั้นใช้ Get group อ่านข้อมูลปัจจุบัน โดยแยกสิ่งต่อไปนี้ในแอป:

  1. ค่าที่สังเกตได้ล่าสุด
  2. ฟิลด์ที่ผู้ปฏิบัติงานแก้ไขจริง
  3. ค่าที่อ่านได้อีกครั้งหลังส่งคำขอ

ถ้าแก้เฉพาะคำอธิบาย ไม่ต้องส่งชื่อและรูปเก่าไปด้วย หากอ่านใหม่แล้วพบว่าคนอื่นแก้ฟิลด์เดียวกัน ให้ผู้ปฏิบัติงานตรวจทานก่อนบันทึก นี่เป็นมาตรการของแอป ไม่ใช่การตรวจเวอร์ชันจากเซิร์ฟเวอร์

หน้าจอยืนยันควรแสดงบัญชี กลุ่ม และฟิลด์ที่เปลี่ยน เก็บ API key ไว้ฝั่งหลังบ้าน และตรวจสิทธิ์ผู้ปฏิบัติงานที่นั่นเช่นกัน

ส่งเฉพาะข้อมูลกลุ่มที่ตั้งใจเปลี่ยน

JavaScript ต่อไปนี้แสดงคำขอฝั่งหลังบ้านหนึ่งครั้ง ส่งตัวระบุจริงจากรายการที่เลือกและ API key จากที่เก็บความลับ ตัวอย่างนี้ตั้งใจรองรับเฉพาะการแทนค่าด้วยข้อความที่ไม่ว่าง ไม่ได้กำหนดวิธีล้างฟิลด์หรือลบรูป

async function updateGroupInfo({ apiKey, accountId, groupId, edits }) {
  if (!apiKey || !accountId || !groupId) {
    throw new Error('Missing credential or selected target');
  }
  const body = { group_id: groupId };
  for (const field of ['name', 'description', 'avatar_url']) {
    if (!Object.hasOwn(edits, field)) continue;
    const value = edits[field];
    if (typeof value !== 'string' || !value.trim()) {
      throw new Error('This editor accepts non-empty replacements only');
    }
    body[field] = value;
  }
  if (Object.keys(body).length === 1) return null;

  const response = await fetch(
    `https://api.unifyport.ai/v1/accounts/${encodeURIComponent(accountId)}/groups/update-info`,
    {
      method: 'POST',
      headers: { 'X-Api-Key': apiKey, 'Content-Type': 'application/json' },
      body: JSON.stringify(body)
    }
  );
  return { httpStatus: response.status, result: await response.json() };
}

ใส่เฉพาะฟิลด์ที่แก้ไขใน edits รูปต้องเป็น URL รูปภาพที่เข้าถึงได้สาธารณะ ใช้ภาพที่คุณควบคุมและมีสิทธิ์เผยแพร่ อย่าส่งพาธไฟล์ในเครื่องหรือหน้าเว็บที่ต้องล็อกอินผ่านเบราว์เซอร์ นี่คือคำขอที่ใช้ URL ไม่ใช่ endpoint อัปโหลดรูป

ผลสำเร็จที่เอกสารระบุคือ 200 OK พร้อม data.ok: true ต้องตรวจทั้งสองส่วนก่อนแสดงว่าสำเร็จ โค้ดใช้งานจริงต้องจัดการข้อผิดพลาดเครือข่ายและคำตอบที่ไม่ใช่ JSON เก็บ request_id เมื่อมี และไม่บันทึกข้อมูลลับ ตัวอย่างนี้ใช้เพื่ออธิบายและไม่ได้รันจริงในงานนี้

ตรวจผลทีละฟิลด์ แทนการส่งแบบฟอร์มซ้ำ

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

เอกสารอีเวนต์มาตรฐาน ระบุว่า group.updated อาจมีหลายรายการใน data.changes[]:

  • renamed มี name
  • description_changed มี description
  • avatar_changed ของ WhatsApp มี removed และอาจมี picture_id แต่ ไม่มี URL รูปภาพ

ใช้อีเวนต์เป็นสัญญาณให้อ่านตรวจสอบ ไม่ใช่ใบยืนยันที่รับประกันว่าจะมาทุกคำขอ ตรวจลายเซ็นตามข้อกำหนดการส่ง webhook รองรับข้อมูลซ้ำและลำดับที่สลับกัน และอย่าล้างฟิลด์อื่นเพียงเพราะอีเวนต์ไม่ได้ส่งฟิลด์นั้นมา

หากหมดเวลา ให้แสดงผลว่ายังไม่ยืนยันและตรวจสถานะปัจจุบันก่อนตัดสินใจว่าต้องแก้อะไรต่อ อย่าส่งแบบฟอร์มหลายฟิลด์เก่าซ้ำอัตโนมัติหรือคืนค่าจากภาพข้อมูลเก่า เอกสารสาธารณะไม่มีการย้อนกลับหลายฟิลด์แบบอะตอมหรือเงื่อนไขเวอร์ชัน การปฏิเสธสิทธิ์จากต้นทางจะแสดงเป็น update_group_info_failed แต่ต้องอ่านรายละเอียด ไม่ใช่สรุปว่าข้อผิดพลาดรหัสนี้มีสาเหตุเดียวเสมอ

คำถามที่พบบ่อย

ใช้ค่าว่างล้างคำอธิบายหรือลบรูปได้ไหม?

ขั้นตอนนี้ไม่ตั้งสมมติฐานดังกล่าว เอกสารที่อ้างถึงไม่ได้กำหนดวิธีล้างค่า อย่าเปิดปุ่มเหล่านี้จนกว่าจะยืนยันข้อกำหนดของการกระทำนั้นได้

อ่านกลุ่มสำเร็จแปลว่าแก้ไขได้หรือไม่?

ไม่ใช่ สิทธิ์อ่าน การรองรับคำสั่งของช่องทาง และสิทธิ์ผู้ดูแลกลุ่มต้องตรวจแยกกัน

ต้องส่งครบทั้งสามฟิลด์หรือไม่?

ไม่ต้อง ส่ง group_id กับฟิลด์แก้ไขที่รองรับอย่างน้อยหนึ่งฟิลด์ หากไม่ได้แก้แบบฟอร์ม ไม่ควรส่งคำขอเขียน

ขั้นตอนถัดไปและแหล่งข้อมูล

เริ่มพัฒนาจาก Update group info ก่อนเปิดใช้งาน ให้ทดสอบการแก้ชื่ออย่างเดียว แบบฟอร์มที่ไม่เปลี่ยนแปลง การแก้พร้อมกันในแอป รูปที่เข้าถึงไม่ได้ การปฏิเสธสิทธิ์ และการหมดเวลา นี่คือรายการทดสอบที่แนะนำ ไม่ใช่ผลที่ทดสอบแล้ว

ตรวจสอบแหล่งข้อมูลเมื่อ 2026-10-23:

UnifyPort API

เปลี่ยนการเชื่อมต่อข้อความให้เป็น pipeline ผลิตภัณฑ์ที่เสถียร

เริ่มจากการส่งผ่าน API เดียว แล้วส่งข้อความขาเข้าทั้งหมดกลับสู่ระบบธุรกิจของคุณด้วย event มาตรฐาน