ส่งข้อความโดยตรง API
คุณสามารถส่งข้อความตรงไปยังผู้ใช้คนอื่นภายใน ZEPETO World โดยใช้ API ส่งข้อความตรง (DM)
เมื่อใช้ API ส่งข้อความตรง (DM) ในโลกที่เปิดใช้งานแล้ว จะมีลิงก์เพื่อเข้าสู่โลกโดยอัตโนมัติที่ด้านล่างของข้อความ ทำให้เหมาะสำหรับการโปรโมตโลก
โปรดแน่ใจว่าคุณปฏิบัติตามข้อควรระวังเมื่อใช้งาน
ติดตั้ง
Window → Package Manager → ZEPETO.World Package กรุณาติดตั้งเวอร์ชัน 1.21.14 หรือสูงกว่าก่อน
หลังจากนั้น กรุณาติดตั้งแพ็คเกจ ‘ZEPETO.Module’ ที่มีเวอร์ชัน 1.0.7 หรือสูงกว่า
ตรวจสอบให้แน่ใจว่าแอป ZEPETO กำลังทำงานในเวอร์ชัน 3.46.000 หรือสูงกว่า

API ส่งข้อความตรง
- ในการใช้ API ส่ง DM ให้เพิ่มคำสั่งนำเข้าด้านล่างนี้
import { SocialService } from 'ZEPETO.Module.Social';
ฟังก์ชันหลักในการส่ง DM
- ประกาศ
- public static OpenPopupDirectMessage($sendMessage: string, $userIds?: string[], $onComplete?: System.Action$1):void;
- พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
|---|---|
sendMessage | นี่คือพารามิเตอร์ที่จำเป็น นี่คือเนื้อหาของข้อความที่คุณต้องการส่ง หากมันว่างเปล่าหรือไม่มีเนื้อหา การส่งจะถือเป็นความล้มเหลว. |
userIds | นี่คือพารามิเตอร์ที่ไม่จำเป็น หากคุณส่ง userIds - UI การเลือกจะถูกกำหนดด้วยรายการ user ID ที่เกี่ยวข้อง เมื่อไม่ส่ง userIds หรือส่งรายการว่าง - UI การเลือกจะถูกสร้างขึ้นด้วยรายการติดตาม/ติดตามของผู้ใช้ที่ส่งข้อความ. |
onComplete | นี่คือ callback ที่จะถูกเรียกเมื่อการส่งข้อความเสร็จสิ้นหรือล้มเหลว. |
สถานะป๊อปอัพข้อความตรง
การตอบสนอง | คำอธิบาย |
|---|---|
ยกเลิก | เมื่อป๊อปอัพถูกปิดด้วยตนเองหรือหากการส่งล้มเหลว |
ส่งเสร็จสิ้น | เมื่อคำขอส่งเสร็จสิ้นและมันปิดตัวลง |
สถานการณ์ตามรหัสข้อผิดพลาด
การตอบสนอง | คำอธิบาย |
|---|---|
31002 | สิ่งนี้เกิดขึ้นหากมี UserID ที่ไม่ถูกต้องอย่างน้อยหนึ่งรายการ (UserID ที่ไม่มีอยู่) รวมอยู่เมื่อป้อนรายการ user ID ในพารามิเตอร์ userIds. |
37011 | สิ่งนี้เกิดขึ้นเมื่อคุณพยายามส่งข้อความในขณะที่อยู่ภายใต้บัญชีผู้เยี่ยมชม. |
8001 | สิ่งนี้เกิดขึ้นเมื่อคุณส่งข้อความเดียวกันซ้ำ ๆ ติดต่อกัน มันสามารถส่งได้ครั้งละ 10 วินาที. |
2001 | สิ่งนี้เกิดขึ้นเมื่อเนื้อหาของข้อความในฟิลด์ ‘ส่ง’ ว่างเปล่า มีเพียงช่องว่าง หรือเกิน 1000 ตัวอักษร. |
0 | กรณีข้อผิดพลาดการเชื่อมต่อเครือข่าย เช่น การตัดการเชื่อมต่อเครือข่าย ความไม่เสถียรของการเชื่อมต่อ และสถานการณ์ข้อผิดพลาดทั่วไปอื่น ๆ. |
-1 | ข้อผิดพลาดที่ไม่สามารถระบุได้. |
ตัวอย่างการใช้งาน
กรอกผู้ส่งโดยตรงและส่ง
1) กรุณาเพิ่มปุ่มส่ง DM ลงใน Canvas.
2) กรุณาเขียนโค้ดตัวอย่างตามด้านล่างนี้.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { SocialService, DirectMessagePopupState } from 'ZEPETO.Module.Social';
import { Button } from "UnityEngine.UI";
import { WorldService } from 'ZEPETO.World';
export default class SendDirectMessage extends ZepetoScriptBehaviour {
// ตัวแปรเพื่อเก็บข้อความตรง
public message: string;
// อาร์เรย์ของ ID ผู้ใช้เพื่อส่งข้อความตรงไปยัง
public userIds: string[];
// อ้างอิงไปยังส่วนประกอบ UI ปุ่ม
public sendDMButton: Button;
Start() {
this.sendDMButton.onClick.AddListener(() => {
// ตรวจสอบว่าหมายเลข ID ของฉันรวมอยู่ในอาร์เรย์ userIds หรือไม่และคืนค่าหากรวมอยู่
if (this.userIds.includes(WorldService.userId)) {
console.log("userIds มี userId ของฉัน");
return;
}
// เปิดป๊อปอัพเพื่อส่งข้อความตรงโดยใช้ SocialService
SocialService.OpenPopupDirectMessage(this.message, this.userIds, (popupState: DirectMessagePopupState) => {
// ตรวจสอบสถานะของป๊อปอัพข้อความตรง
if (popupState === DirectMessagePopupState.Cancel) {
console.log("คุณปิดป๊อปอัพหรือไม่สามารถส่งข้อความได้");
} else if (popupState === DirectMessagePopupState.SendComplete) {
console.log("ข้อความ DM ถูกส่งสำเร็จและป๊อปอัพถูกปิด.");
}
});
});
}
}
3) หลังจากเขียนสคริปต์เสร็จแล้ว ให้กลับไปที่ Unity editor และลากปุ่มใน inspector เพื่อตั้งค่า กรอกเนื้อหาข้อความและ UserID ของผู้ใช้เป้าหมายสำหรับข้อความ.
- แสดงได้สูงสุด 20 คนใน UI ดังนั้นกรอกข้อมูลได้สูงสุด 20 คน
4) เมื่อคุณกดปุ่มส่ง DM UI รายชื่อเพื่อนจะปรากฏขึ้น
- เลือกผู้ใช้เป้าหมายและคลิกส่ง

5) หากการส่ง DM สำเร็จ UI Toast จะปรากฏขึ้นเพื่อแสดงความสำเร็จ และจะมีการบันทึกโดยสคริปต์ตัวอย่าง

6) นอกจากนี้ยังมี DM มาถึงสำหรับ targetUser

- หากเกิดข้อผิดพลาด เช่น การส่งข้อความต่อเนื่องหรือเนื้อหาข้อความว่าง การส่ง DM จะถูกประมวลผลว่าเป็นความล้มเหลว

ส่งโดยใช้ UI รายชื่อผู้ติดตาม/ผู้ติดตาม
1) กรุณาเพิ่มปุ่มลงใน Canvas.
2) กรุณาเขียนโค้ดตัวอย่างตามด้านล่าง.
- หากคุณส่งรายการว่างไปยังพารามิเตอร์ targetUserID UI รายชื่อผู้ติดตาม/ผู้ติดตามจะปรากฏขึ้น.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { SocialService, DirectMessagePopupState } from 'ZEPETO.Module.Social';
import { Button } from "UnityEngine.UI";
export default class SendDirectMessage extends ZepetoScriptBehaviour {
// ตัวแปรเพื่อเก็บข้อความตรง
public message: string;
// อ้างอิงไปยังส่วนประกอบ UI ปุ่ม
public sendDMButton: Button;
// ตัวแปรส่วนตัวเพื่อเก็บอาร์เรย์ของ ID ผู้ใช้ เริ่มต้นเป็น null
private emptyIds: string[];
Start() {
this.sendDMButton.onClick.AddListener(() => {
// เปิดป๊อปอัพเพื่อส่งข้อความตรงโดยใช้ SocialService
// ใช้เนื้อหาข้อความของคลาสและอาร์เรย์ว่างของ ID ผู้ใช้
SocialService.OpenPopupDirectMessage(this.message, this.emptyIds, (popupState: DirectMessagePopupState) => {
// ตรวจสอบสถานะที่ส่งกลับของป๊อปอัพข้อความตรง
if (popupState === DirectMessagePopupState.Cancel) {
console.log("คุณปิดป๊อปอัพหรือไม่สามารถส่งข้อความได้");
} else if (popupState === DirectMessagePopupState.SendComplete) {
console.log("ข้อความ DM ถูกส่งสำเร็จและป๊อปอัพถูกปิด.");
}
});
});
}
}
3) หลังจากเขียนสคริปต์เสร็จ ให้กลับไปที่ Unity editor และลากปุ่มใน inspector เพื่อตั้งค่า จากนั้นกรุณาใส่เนื้อหาของข้อความ.
4) เมื่อคุณกดปุ่มส่ง DM UI ของผู้ติดตาม/ผู้ติดตามจะปรากฏขึ้น.
- เลือกผู้ใช้เป้าหมายและคลิกส่ง (สามารถเลือกได้สูงสุด 5 คน)

- คุณสามารถส่ง DM ได้สูงสุด 5 คนในครั้งเดียว.
- คุณไม่สามารถส่ง DM ไปหาตัวเองได้.
- จำนวนผู้ติดตาม/ผู้ติดตามจริงอาจแตกต่างจากจำนวนผู้ใช้ที่แสดงในป๊อปอัพส่ง DM.
- นี่เป็นเพราะผู้ใช้ที่สามารถเลือกได้จะถูกกรองและแสดงผล.
- หากคุณเลือกผู้ใช้ที่บล็อกการรับ DM จะถือว่าเป็นความล้มเหลวและ DM จะไม่ถูกส่ง.
- หากคุณเรียกใช้ API ส่ง DM บ่อยเกินไป จะมีการจำกัดและการส่งจะล้มเหลว.
- คุณสามารถส่งได้ครั้งละ 10 วินาที กรุณาอย่าส่ง DM โดยไม่เลือก.
- หากข้อความที่คุณส่งมี URL จะไม่ทำงานอย่างถูกต้อง ดังนั้นการส่งข้อความที่มี URL จึงถูกห้าม.
- หากข้อความที่ส่งเป็นค่าว่างหรือว่างเปล่า จะถือว่าเป็นความล้มเหลว กรุณาเขียนเนื้อหาของข้อความให้ชัดเจน.