メッセージ

メッセージ

Game Chatが提供するメッセージ機能は、ユーザー間の効果的なコミュニケーションをサポートする様々なサービスを含みます。このプラットフォームは、個人的な会話だけでなくグループでの会話にも適しており、メッセージの送受信を簡単かつ迅速に行うことができます。以下は Game Chatの主なメッセージ機能とその特徴です。

1. 即時メッセージング

  • リアルタイムコミュニケーション : ユーザーはリアルタイムでメッセージを送受信でき、コミュニケーションの遅延を最小限に抑えます。

  • マルチデバイス対応 : ユーザーはスマートフォン、タブレット、PCなど様々なデバイスでメッセージを送受信できます。

2. グループチャット

  • 複数の参加者 : ユーザーは複数の人が参加するグループチャットを作成して情報を共有し、チーム内のコミュニケーションを容易にすることができます。

  • チャンネル管理 : 管理者はグループチャットを介してメンバーを追加したり削除し、グループの設定を調整できます。

3. ファイル共有

  • 様々なファイル形式をサポート : テキスト、画像、動画、文書など様々な形式のファイルをチャットで簡単に共有できます。

  • 安全なファイル保存 : Game Chatはお客様所有の Object Storage内にファイルを保存管理するため、外部への情報流出を防ぎます。

4. メッセージ検索

  • キーワード検索 : チャット内で特定のキーワードを使って過去の会話内容を検索できます。

  • 高度なフィルタオプション : 日付、参加者、ファイルタイプなど様々なフィルタを適用して、目的のメッセージを素早く検索できます。

5. 通知とその調整

  • プッシュ通知 : 新しいメッセージや重要なアップデートがあるときにユーザーに通知を送信し、情報の漏れを防ぎます。

  • 通知設定 : ユーザーは通知の種類と頻度を調整でき、希望する方法で情報を受け取ることができます。

6. セキュリティと個人情報保護

  • データ暗号化 : すべてのメッセージは送信と保存の過程で暗号化され、外部からのデータ漏洩を防止します。

  • 個人情報保護 : ユーザーの個人情報や会話内容は厳重に保護され、ユーザーの同意なしに第三者に開示されることはありません。

Game Chatのメッセージ機能はユーザーのコミュニケーションを円滑かつ効率的にし、仕事や日常生活において重要な役割を果たします。これらの機能によりユーザーはより簡単にコミュニケーションできるようになり、チームワークの強化に大きく貢献します。

メッセージ送信

チャンネルを作成して登録したら、以下のように呼び出して新しいメッセージを送信します。

const message = 'Hello !!!';
await nc.sendMessage(
        channelId: CHANNEL_ID,
        type:"text",
        content: message
);


// メッセージにコメントを送る場合
await nc.sendMessage(
        channelId: CHANNEL_ID,
        type:"text",
        content: message,
        parentMessageId: [MESSAGE_ID]
        );

// メッセージに自動翻訳をする場合
await nc.sendMessage(
        channelId: CHANNEL_ID,
        type:"text",
        content: message,
        translate: true
        );

// 新規メッセージから下記のように parent_messageに親メッセージの内容を補強して送ります。
{
    "id": "message_id",
    "text": "Message",
    "parent_message_id": "first_message_id",
    "parent_message": {
        "id": "message_id",
        "text": "message_name",
        "sender" : {
            "id" : "Sender",
             "name" : "Sender Nickname",
             "profile" : "profile url"
        }
    }
}

参考

messageは JSON形式で送信/受信すると、様々なユーザー定義の値を使用できます。

Hashtable messageArray = new Hashtable
{
    { "channel_id", "channelId" },
    { "state", 1 },
    { "desc" , "Desc" }
};
// メッセージをプレーンテキストに変換します。
const jsonString = JsonConvert.SerializeObject(messageArray);
// 受信したメッセージを Arrayに変換します。
Hashtable hashtable = JsonConvert.DeserializeObject<Hashtable>(jsonString);
IDTypeDescription

CHANNEL_ID

string

チャンネル ID

type

string

送信するメッセージの種類(text、image)

MESSAGE

string

送信メッセージのテキスト、JSON Stringを活用すると、様々な用途で使用可能

MENTIONS

array

メンションするユーザー ID

  • Express Messageを使用する: 高速でメッセージを送信するための関数です。時間がかかる可能性のある部分をすべてスキップし、従来より10倍速くメッセージを送信できます。一般 sendMessageとの違いは、次の通りです。

FunctionDescriptionフィルタリングブロック翻訳

sendMessage

一般メッセージの送信

O

O

O

sendExpressMessage

クイックメッセージの送信

X

X

X

ゲーム内でリアルタイム PvPを制作したり、高速の Broadcastingが必要なすべてのサービスに利用できます。

ファイルアップロード

  • 特定チャンネルにファイルを送信できます。

  • ダッシュボード > 設定 > セキュリティ > 許可されたファイルタイプのみアップロードできます。

await nc.sendFile([CHANNEL_ID],file);
IDTypeDescription

CHANNEL_ID

string

チャンネル ID

file

string

ファイル情報

参考

  • オブジェクトストレージが有効になっている必要があります。

  • Object Storageサービスと連携すると使用できます。

  • アップロード時にダッシュボードの プロジェクト設定 > セキュリティ設定 でアップロードタイプと容量などを設定します。

  • サポートファイルタイプ: 画像、動画、文書、圧縮などの一般的なタイプをすべてサポートし、追加でサポートが必要な拡張子は、お問い合わせからご連絡いただければ、セキュリティ検討後に追加いたします。

  • ファイルリンクを利用する場合、Endpointアドレスは https://apps.ncloudchat.naverncp.comです。 例) https://apps.ncloudchat.naverncp.com/archive/[archiveId]

メッセージ情報

  • Message Data Class

IDTypeDescription

id

string

ID(unique)

message_id

string

メッセージ ID

sort_id

string

メッセージソートのための ID

message_type

string

メッセージ種類

sender.id

string

送信者 ID

sender.name

string

送信者の名前

sender.profile

string

送信者のプロファイル画像

metions

string

メンションされたリスト

metions_everyone

string

全体メンションの有無

content

string

メッセージ

created_at

string

作成日

sended_at

string

送信日

個別メッセージ情報

個別メッセージに関する情報を取得できます。

NBaseSDK.Message message = await nc.getMessage([CHANNEL_ID], [MESSAGE_ID]);

全体メッセージ情報

全体メッセージ情報を取得できます。

  • MessageData data class

IDTypeDescription

totalCount

Int

メッセージの総数

messages

Message

メッセージのデータリスト

Hashtable filter = new Hashtable
{
    { "channel_id", [CHANNEL_ID] }
};
Hashtable sort = new Hashtable
{
    { "sort_id", -1 }
};
Hashtable option = new Hashtable
{
    { "offset", 0 },
    { "per_page", 10 }
};
var messages = await nc.getMessages(filter, sort, option);
if (messages != null)
    {
            foreach (var message in messages.edges)
        {
            string id = message.Node.message_id.ToString();
            Console.WriteLine("[CloudChatSample] id={0}", id);
        }
    }
  • Parameters

IDTypeDescriptionRequired

filter

object

クエリをフィルタ。すべてのフィールドに対して検索可能

O

sort

object

ソートしたいフィールドのフィルタの定義

X

option

object

オプションが存在する場合、以下を参照

X

  • Filter

IDTypeDescription

message_id

String

メッセージ ID

channel_id

String

チャンネル ID

sort_id

String

ソート ID

message_type

String

メッセージタイプ

embedProviders

String

エンベッドのプロバイダ

isExpress

Boolean

クイックメッセージの有無

bytes

Int

メッセージのバイトサイズ

content

String

メッセージの内容

sended_at

String

メッセージの送信時間

created_at

String

メッセージの作成時間

  • Sort

IDTypeDescription

created_at

number

作成日(昇順「1」、降順「-1」)

  • Options

IDTypeDescription

offset

number

開始 offset

per_page

number

リターン数(最大100個)

未読メッセージ

未読メッセージ数をリターンします。最初に markReadから最後に読んだメッセージ情報を転送します。

nc.markRead([CHANNEL_ID], new NBaseSDK.MarkInput
{
    user_id = USER_ID,
    message_id = MESSAGE_ID,
    sort_id = SORT_ID
});
// マークした以降の未読メッセージの総数をリターンします。
var unread = nc.unreadCount([CHANNEL_ID]);
IDTypeDescription

USER_ID

string

メッセージに含まれた user_idを入力

MESSAGE_ID

string

メッセージに含まれた message_idを入力

SORT_ID

string

メッセージに含まれた sort_idを入力

メッセージ削除

当該チャンネル内に自分が送ったメッセージを削除できます。

await nc.deleteMessage([CHANNEL_ID], [MESSAGE_ID]);
  • Parameters

IDTypeDescription

CHANNEL_ID

string

チャンネル ID

MESSAGE_ID

string

メッセージ ID

Last updated