システム一時通知を管理する
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) チャットのシステム一時通知機能を使用すると、ゲーム開発者はカテゴリを作成できます。このカテゴリは、ゲーム内でポップアップとして一時的に表示されるシステムメッセージやイベントのフックとして機能します。この記事では、AGS 管理ポータルまたは AGS CLI でシステム一時通知を管理する方法について説明します。
前提条件
管理者は、システム一時通知を管理するために以下の権限を持っている必要があります:
| 権限 | アクション | 使用方法 |
|---|---|---|
ADMIN:NAMESPACE:{namespace}:CHAT:CATEGORY | CREATE, READ, UPDATE, DELETE | システムメッセージまたはイベントをカテゴリにフックするため |
ADMIN:NAMESPACE:{namespace}:CHAT:INBOX | CREATE, READ, UPDATE, DELETE | システムメッセージを作成するため |
AGS CLI の手順を実行するには、AGS CLI をインストールし、上記の権限を持つアカウントでサインインしてください。詳しくは、インストールとサインイン を参照してください。例では Bash シェルを使用しています。
一時通知フロー
以下の図は、機能の動作に関する詳細情報を示しています:


一時メッセージページにアクセスする
以下のセクションで説明する管理および構成オプションにアクセスするには、AGS 管理ポータルにログインし、ゲームネームスペースダッシュボードに移動します。次に、マルチプレイヤー > チャット > 一時メッセージ に移動します。
カテゴリを管理する
以下のセクションでは、一時通知カテゴリの管理について詳しく説明します。
新しいカテゴリを作成する
システム一時通知の新しいカテゴリを作成するには、以下の手順に従います:
- Admin Portal
- AGS CLI
-
一時メッセージページで、カテゴリ タブを開きます。
-
+ 新規作成 をクリックします。
-
新しいカテゴリを作成 ページに必要な情報を入力します。
-
作成 をクリックします。
-
カテゴリの設定を記述した JSON ファイルを作成します。ファイル名は任意です。この例では
category.jsonを使用します:{
"name": "<CategoryName>",
"expiresIn": 3600000000000,
"saveInbox": false,
"sendNotification": true,
"enabled": true
}name: 英字、数字、スペース、-、_、.のみ使用できます。後から変更することはできません。expiresIn: このカテゴリのメッセージが保持される期間で、単位は ナノ秒 です。管理ポータルではこの値を秒単位で入力するため、秒数に 1,000,000,000 を掛けてください。この例は 1 時間です。sendNotification:trueのままにしてください。管理ポータルでは常にtrueに設定されます。
これらのフィールドは、管理ポータルのその他の設定に対応しています:
管理ポータルの設定 リクエストボディのフィールド Saved In Inbox saveInboxDriver、Topic、Event Name、User ID Path hook:{"driver": "KAFKA", "params": {"topic": "<Topic>", "eventName": "<EventName>", "userIdsPath": "<UserIdPath>"}}。ドライバーを使用しない場合は、hookを省略します。jsonSchema jsonSchema -
カテゴリを作成します。
@の後に JSON ファイルのパスを指定します:ags chat inbox create-category --namespace <YourNamespace> --json @category.json
カテゴリを編集する
- Admin Portal
- AGS CLI
カテゴリを編集するには、一時メッセージ ページに戻ります。カテゴリ タブの下で、カテゴリ セクションの下にあるカテゴリの名前をクリックして必要な変更を行い、完了したら 更新 をクリックします。
-
カテゴリを一覧表示します:
ags chat inbox list-categories --namespace <YourNamespace> --format json -
出力からカテゴリのオブジェクトを
category.jsonなどの JSON ファイルにコピーし、変更したい設定を編集します。フィールドについては、新しいカテゴリを作成する を参照してください。 -
カテゴリを更新します。
<CategoryName>をカテゴリのnameに置き換えます:ags chat inbox update-category --namespace <YourNamespace> --category <CategoryName> --json @category.json警告更新するたびに、カテゴリのすべての設定が上書きされます。ファイルで省略したフィールドはリセットされるため、手順 2 でコピーしたすべてのフィールドをファイルに残してください。
カテゴリを削除する
- Admin Portal
- AGS CLI
一時メッセージ ページの カテゴリ タブに移動し、カテゴリ セクションにリストされているカテゴリを見つけて、アクション 列の下にある 削除 オプションをクリックすることで、カテゴリを削除できます。
カテゴリを削除するには、次のコマンドを実行します。<CategoryName> をカテゴリの name に置き換えます:
ags chat inbox delete-category --namespace <YourNamespace> --category <CategoryName>
メッセージを管理する
以下のセクションでは、一時通知メッセージの管理について詳しく説明します。
新しいメッセージを作成する
システム一時通知の新しいメッセージを作成するには、以下の手順に従います:
- Admin Portal
- AGS CLI
-
一時メッセージページで、メッセージ タブを開きます。
-
+ 新規作成 をクリックします。
-
新しいメッセージを作成 ページにメッセージの内容、受信者、カテゴリを入力します。
-
後でメッセージを送信する場合は 下書きとして保存 をクリックするか、すぐにメッセージを送信する場合は 送信 をクリックします。
-
メッセージを記述した JSON ファイルを作成します。ファイル名は任意です。この例では
message.jsonを使用します:{
"category": "<CategoryName>",
"message": {"body": "<MessageBody>"},
"scope": "USER",
"userIds": ["<UserId>"],
"expiredAt": <ExpiredAt>,
"status": "DRAFT"
}category: カテゴリの名前です。カテゴリを確認するには、ags chat inbox list-categories --namespace <YourNamespace>を実行します。message: メッセージの内容です。bodyには、管理ポータルで入力するテキストを指定します。scopeとuserIds: 特定のプレイヤーにメッセージを送信するには、scopeをUSERに設定し、userIdsにプレイヤーのユーザー ID を列挙します。すべてのプレイヤーに送信するには、scopeをNAMESPACEに、userIdsを[]に設定します。管理ポータルではユーザー名やメールアドレスも指定できますが、AGS CLI ではユーザー ID のみ指定できます。expiredAt: メッセージの有効期限で、秒単位の Unix タイムスタンプで指定します。管理ポータルでは、現在時刻にカテゴリの有効期間を加えた値に設定されます。未来の時刻である必要があります。Linux では、date -d '+1 day' +%sで現在から 1 日後のタイムスタンプを出力できます。status: メッセージを下書きとして保存する場合はDRAFT、すぐに送信する場合はSENTを指定します。
-
メッセージを作成します。
@の後に JSON ファイルのパスを指定します:ags chat inbox create-message --namespace <YourNamespace> --json @message.jsonコマンドを実行すると、
idを含む新しいメッセージが出力されます。
下書きメッセージを編集して送信する
- Admin Portal
- AGS CLI
一時メッセージ ページの メッセージ タブの下にある メッセージリスト セクションにリストされているメッセージを見つけることができます。下書きメッセージを編集するには、その名前をクリックします。下書きとして保存 をクリックして変更を保存するか、送信 をクリックしてすぐにメッセージを送信できます。
-
下書きメッセージの ID を確認します:
ags chat inbox list-messages --namespace <YourNamespace> --transient true --status DRAFT -
下書きを編集するには、メッセージの新しい設定を記述した JSON ファイルを作成します。この例では
message.jsonを使用します:{
"message": {"body": "<MessageBody>"},
"scope": "USER",
"userIds": ["<UserId>"],
"expiredAt": <ExpiredAt>
}各フィールドは 新しいメッセージを作成する と同様に機能します。カテゴリは変更できません。
警告更新するたびに、メッセージ本文、受信者、有効期限が上書きされます。変更しないフィールドも含め、4 つのフィールドすべてをファイルに記述してください。
-
変更を保存します。
<MessageId>を手順 1 で確認した下書きのidに置き換えます。@の後に JSON ファイルのパスを指定します:ags chat inbox update-message --namespace <YourNamespace> --message-id <MessageId> --json @message.json -
下書きを送信するには、次のコマンドを実行します:
ags chat inbox send-message --namespace <YourNamespace> --message-id <MessageId>
送信済みメッセージの送信を取り消す
- Admin Portal
- AGS CLI
一時メッセージ ページの メッセージ タブの下にある メッセージリスト セクションにリストされているメッセージを見つけることができます。メッセージの送信を取り消すには、送信を取り消したいメッセージを見つけて、アクション 列の下にある省略記号メニューをクリックし、送信取り消し をクリックします。次に、UNSEND と入力して確認します。
-
送信済みメッセージの ID を確認します:
ags chat inbox list-messages --namespace <YourNamespace> --transient true --status SENT -
メッセージの送信を取り消します。
<MessageId>をメッセージのidに置き換えます:ags chat inbox unsend-message --namespace <YourNamespace> --inbox <MessageId> --json '{"userIds": []}'userIdsリストを空にすると、すべての受信者からメッセージの送信が取り消され、メッセージは送信取り消し済みとしてマークされます。特定のプレイヤーに対してのみ送信を取り消すには、代わりにそのプレイヤーのユーザー ID を列挙します。
送信済みメッセージを下書きとして複製する
- Admin Portal
- AGS CLI
一時メッセージ ページの メッセージ タブの下にある メッセージリスト セクションにリストされているメッセージを見つけることができます。送信済みメッセージを複製して下書きとして保存するには、複製したいメッセージを見つけて、アクション 列の下にある省略記号メニューをクリックし、下書きとして複製 をクリックします。次に、複製 をクリックして確認します。
-
複製したいメッセージを取得します。
<MessageId>をメッセージのidに置き換えます。idはags chat inbox list-messages --namespace <YourNamespace> --transient trueで一覧表示できます:ags chat inbox list-messages --namespace <YourNamespace> --message-id <MessageId> --format json -
message.jsonなどの JSON ファイルを作成し、出力のcategory、message、scope、userIdsの値を記述します。statusをDRAFTに、expiredAtを未来の新しい時刻に設定します。フィールドについては、新しいメッセージを作成する を参照してください。 -
下書きを作成します:
ags chat inbox create-message --namespace <YourNamespace> --json @message.json