ダイレクトメッセージ送信API
ZEPETO World内の他のユーザーにダイレクトメッセージを送信するには、Send Direct Message(DM) APIを使用できます。
起動されたワールドでダイレクトメッセージ(DM)送信APIを使用すると、メッセージの下部にワールドに入るためのリンクが自動的に提供され、ワールドのプロモーションに適しています。
使用する際は、必ず注意事項に従ってください。
インストール
Window → Package Manager → ZEPETO.World Package まずバージョン1.21.14以上をインストールしてください。
その後、バージョン1.0.7以上の‘ZEPETO.Module’パッケージをインストールしてください。
ZEPETOアプリがバージョン3.46.000以上で動作していることを確認してください。

ダイレクトメッセージAPIを送信
- Send DM APIを使用するには、以下のインポート文を追加してください。
import { SocialService } from 'ZEPETO.Module.Social';
DM送信のコア機能
- 宣言
- public static OpenPopupDirectMessage($sendMessage: string, $userIds?: string[], $onComplete?: System.Action$1):void;
- パラメータ
パラメータ | 説明 |
|---|---|
sendMessage | これは必須のパラメータです。これは送信したいメッセージの本文です。空白または空の場合、送信は失敗と見なされます。 |
userIds | これはオプションのパラメータです。 userIdsを渡すと - 選択UIは対応するユーザーIDリストで構成されます。 userIdsが渡されない場合や空のリストが渡された場合 - 選択UIはメッセージを送信するユーザーのフォロー/フォロワーリストで構成されます。 |
onComplete | これはメッセージの送信が完了したときまたは失敗したときに呼び出されるコールバックです。 |
ダイレクトメッセージポップアップ状態
応答 | 説明 |
|---|---|
キャンセル | ポップアップが手動で閉じられた場合、または送信が失敗した場合。 |
送信完了 | 送信リクエストが完了し、閉じるとき。 |
エラーコードによる状況
応答 | 説明 |
|---|---|
31002 | ユーザーIDリストに存在しないユーザーIDが1つ以上含まれている場合に発生します。 |
37011 | ゲストアカウントでメッセージを送信しようとしたときに発生します。 |
8001 | 同じメッセージを繰り返し送信し続けると発生します。10秒ごとに1回送信できます。 |
2001 | ‘送信’フィールドのメッセージ内容が空であるか、スペースのみを含むか、1000文字を超える場合に発生します。 |
0 | ネットワーク接続エラーのケース(ネットワーク切断、接続不安定、その他一般的なエラー状況など)。 |
-1 | 特定できないエラー。 |
使用例
送信者を直接入力して送信
1) DM送信ボタンをキャンバスに追加してください。
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エディタに戻り、インスペクタでボタンをドラッグして設定します。メッセージ本文とターゲットユーザーのUserIDを入力してください。
- UIには最大20人が表示されるので、最大20人を入力してください。
4) DM送信ボタンを押すと、友達リストのUIが表示されます。
- 対象ユーザーを選択して、送信をクリックします。

5) DMの送信が成功すると、成功を示すトーストUIが表示され、サンプルスクリプトによってログが出力されます。

6) また、targetUserにDMが届きました。

- エラーが発生した場合、例えばメッセージを連続して送信したり、メッセージ内容が空である場合、DMの送信は失敗として処理されます。

次の/フォロワーリストUIを使用して送信
1) キャンバスにボタンを追加してください。
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エディタに戻り、インスペクタでボタンをドラッグして設定します。それからメッセージの本文を入力してください。
4) DM送信ボタンを押すと、フォロー/フォロワーUIが表示されます。
- ターゲットユーザーを選択して送信をクリックします。(最大5人まで選択可能)

- 一度に最大5人にDMを送信できます。
- 自分にDMを送信することはできません。
- 実際のフォロー/フォロワーの数は、DM送信ポップアップに表示されるユーザー数と異なる場合があります。
- 選択可能なユーザーがフィルタリングされて表示されるためです。
- DMの受信をブロックしているユーザーを選択すると、それは失敗として扱われ、DMは送信されません。
- Send DM APIを頻繁に呼び出すと、制限され、送信が失敗します。
- 10秒ごとに1回送信できます。無差別にDMを送信しないように注意してください。
- 送信するメッセージにURLが含まれている場合、正しく動作しないため、URLを含むメッセージの送信は禁止されています。
- 送信されるメッセージが空白または空である場合、それは失敗として扱われます。メッセージの内容を必ず記入してください。