เปลี่ยนชื่อ คำอธิบาย และรูปกลุ่ม 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 อ่านข้อมูลปัจจุบัน โดยแยกสิ่งต่อไปนี้ในแอป:
- ค่าที่สังเกตได้ล่าสุด
- ฟิลด์ที่ผู้ปฏิบัติงานแก้ไขจริง
- ค่าที่อ่านได้อีกครั้งหลังส่งคำขอ
ถ้าแก้เฉพาะคำอธิบาย ไม่ต้องส่งชื่อและรูปเก่าไปด้วย หากอ่านใหม่แล้วพบว่าคนอื่นแก้ฟิลด์เดียวกัน ให้ผู้ปฏิบัติงานตรวจทานก่อนบันทึก นี่เป็นมาตรการของแอป ไม่ใช่การตรวจเวอร์ชันจากเซิร์ฟเวอร์
หน้าจอยืนยันควรแสดงบัญชี กลุ่ม และฟิลด์ที่เปลี่ยน เก็บ 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มีnamedescription_changedมีdescriptionavatar_changedของ WhatsApp มีremovedและอาจมีpicture_idแต่ ไม่มี URL รูปภาพ
ใช้อีเวนต์เป็นสัญญาณให้อ่านตรวจสอบ ไม่ใช่ใบยืนยันที่รับประกันว่าจะมาทุกคำขอ ตรวจลายเซ็นตามข้อกำหนดการส่ง webhook รองรับข้อมูลซ้ำและลำดับที่สลับกัน และอย่าล้างฟิลด์อื่นเพียงเพราะอีเวนต์ไม่ได้ส่งฟิลด์นั้นมา
หากหมดเวลา ให้แสดงผลว่ายังไม่ยืนยันและตรวจสถานะปัจจุบันก่อนตัดสินใจว่าต้องแก้อะไรต่อ อย่าส่งแบบฟอร์มหลายฟิลด์เก่าซ้ำอัตโนมัติหรือคืนค่าจากภาพข้อมูลเก่า เอกสารสาธารณะไม่มีการย้อนกลับหลายฟิลด์แบบอะตอมหรือเงื่อนไขเวอร์ชัน การปฏิเสธสิทธิ์จากต้นทางจะแสดงเป็น update_group_info_failed แต่ต้องอ่านรายละเอียด ไม่ใช่สรุปว่าข้อผิดพลาดรหัสนี้มีสาเหตุเดียวเสมอ
คำถามที่พบบ่อย
ใช้ค่าว่างล้างคำอธิบายหรือลบรูปได้ไหม?
ขั้นตอนนี้ไม่ตั้งสมมติฐานดังกล่าว เอกสารที่อ้างถึงไม่ได้กำหนดวิธีล้างค่า อย่าเปิดปุ่มเหล่านี้จนกว่าจะยืนยันข้อกำหนดของการกระทำนั้นได้
อ่านกลุ่มสำเร็จแปลว่าแก้ไขได้หรือไม่?
ไม่ใช่ สิทธิ์อ่าน การรองรับคำสั่งของช่องทาง และสิทธิ์ผู้ดูแลกลุ่มต้องตรวจแยกกัน
ต้องส่งครบทั้งสามฟิลด์หรือไม่?
ไม่ต้อง ส่ง group_id กับฟิลด์แก้ไขที่รองรับอย่างน้อยหนึ่งฟิลด์ หากไม่ได้แก้แบบฟอร์ม ไม่ควรส่งคำขอเขียน
ขั้นตอนถัดไปและแหล่งข้อมูล
เริ่มพัฒนาจาก Update group info ก่อนเปิดใช้งาน ให้ทดสอบการแก้ชื่ออย่างเดียว แบบฟอร์มที่ไม่เปลี่ยนแปลง การแก้พร้อมกันในแอป รูปที่เข้าถึงไม่ได้ การปฏิเสธสิทธิ์ และการหมดเวลา นี่คือรายการทดสอบที่แนะนำ ไม่ใช่ผลที่ทดสอบแล้ว
ตรวจสอบแหล่งข้อมูลเมื่อ 2026-10-23:
เปลี่ยนการเชื่อมต่อข้อความให้เป็น pipeline ผลิตภัณฑ์ที่เสถียร
เริ่มจากการส่งผ่าน API เดียว แล้วส่งข้อความขาเข้าทั้งหมดกลับสู่ระบบธุรกิจของคุณด้วย event มาตรฐาน