---
title: アクティビティ機能で、特定ユーザーにしか見れないコメントを残す
description: ここでは、アクティビティでコメントを残すエンドポイントで、特定のユーザーに向けたコメントを追加する方法を説明します。特定のユーザーに向けたコメントは、対象のユーザーにのみ表示されます。
---

## 概要
ここでは、アクティビティでコメントを残すエンドポイント(`Comment::insert`)で、特定のユーザーに向けたコメントを追加する方法を説明します。  
特定のユーザーに向けたコメントは、対象のユーザーにのみ表示されます。  
ここでは例として、HP上でサポートとプライベートチャットができるスペースの作成を想定し、SwaggerUIで動作の確認までを実施します。  

### 学べること
以下の手順でKuroco管理画面内での動作確認をします。
- [アクティビティ定義の作成](#アクティビティ定義の作成)
- [コンテンツの作成](#コンテンツの作成)
- [エンドポイントの作成](#エンドポイントの作成)
- [Swagger UIで動作の確認](#swagger-uiで動作の確認)

### 前提条件
事前に、次のようなユーザーを準備しておきます。
![Image from Gyazo](https://t.gyazo.com/teams/diverta/c7bf904e1cead23ded17afd77d064234.png)

Diverta TaroとDiverta Supportがお互いにコメントを残し、Diverta Taroにはコメントが表示され、Diverta Jiroからは表示されないことを確認します。

## アクティビティ定義の作成
まずはアクティビティ定義を作成します。    
[アクティビティ定義]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b73cbe0b67685431b15982c5100fcba2.png)

[追加する]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/9455096bc95c8c1b8f7349696f4bb206.png)

未ログインメンバーの権限を`閲覧不可`、`受け付けない`に設定、その他のグループの権限を`閲覧可`、`即公開`として[追加する]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/0d4c214ea27c7aed8a649a335ed24ad2.png)

後ほど利用するので、作成したアクティビティIDをメモしておきます。 

![Image from Gyazo](https://t.gyazo.com/teams/diverta/cc89e2ddd79925992af7178285aab6fe.png)

## コンテンツの作成
次にコメントを追加する対象となるコンテンツを作成します。

任意のコンテンツ定義を選択し、[コンテンツ一覧](/ja/docs/management/content-structure-topics/)の画面から[追加]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c00936a8fe3ab46e654a8903f531096d.png)

以下を入力し、[追加する]をクリックします。 

|項目|値|
|:--|:--|
|タイトル|Kurocoチャットサポート|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b1a8b5aa88241562df59ab5d70865b5b.png)
![Image from Gyazo](https://t.gyazo.com/teams/diverta/72ca2599a82ca4044cd6a191d850967f.png)

追加したコンテンツIDは後ほど利用するためメモします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/f5b7c678685589a0632cebeb647292c3.png)

## エンドポイントの作成
以下のように、自分宛のコメント一覧を表示するエンドポイント（`comments`）と、コメントを送信するためのエンドポイント（`comments/insert`）の2つを作成します。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/912ba70295cce97fe68656fb41d1dbc3.png)


### commentsエンドポイント
`comments`エンドポイントでは、`id` のパラメータにアクティビティIDを設定し、`to_me_list`と`my_list` のパラメータにチェックを入れます。  
`to_me_list` のパラメータにチェックを入れると、エンドポイントにリクエストを送ったユーザーを対象としたコメントが返されるようになります。  
また、`my_list` のパラメータにチェックを入れると、自分の送ったコメントが返されるようになります。

| 項目 | 設定内容 |
| :--- | :--- |
| パス | `comments` |
| カテゴリー | アクティビティ |
| モデル | Comment |
| オペレーション | list |
| id | `37` (作成したアクティビティ定義のID) |
| module_id | `1144` (作成したコンテンツのID)|
| my_list | チェックを入れる |
| to_me_list | チェックを入れる |

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a9fb1604fa00483de95642cdf9f142b1.png)  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/df683d3a72cde336ca5c12470f0262ac.png)  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/50bfe5a565f41d37bdde90607162cf19.png)  


### comments/insertエンドポイント
`comments/insert`エンドポイントでは、`id` のパラメータにアクティビティIDを設定します。

| 項目 | 設定内容 |
| :--- | :--- |
| パス | `comments/insert` |
|カテゴリー | アクティビティ |
| モデル | Comment |
| オペレーション | insert |
| id | `37`(作成したアクティビティ定義のID) |

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b64bd90b70f30c2ee1a9fa1cd9fa1cb4.png)

## Swagger UIで動作の確認
### コメントを残す
準備ができたら、Swagger UIで動作を確認します。  

まずはDiverta Taro(27)のアカウントでログインします。

:::tip
APIのセキュリティをCookieに設定しておくと、メンバーIDを入力してログイン状態のセッションを作成できます。  
ログインのエンドポイントを作成して、IDとパスワードでログインしても構いません。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/3226607f15605850f9fece5822add028.gif)
:::

次に、`comments/insert`エンドポイントを開き、[Try it out]をクリックし、レスポンスボディに以下のコードを貼り付けて実行します。

```json
{
  "module_id": 1144,
  "name": "Diverta Taro",
  "note": "Kurocoについて教えてください。",
  "delkey": "",
  "to_member_ids": [
    30
  ]
}
```

:::caution
`"module_id": 1144` の部分は作成したコンテンツのIDを指定してください。
`"to_member_ids": [30]` の部分はコメントのあて先(今回はDiverta Support)のメンバーIDを指定してください。
:::

:::tip
`to_member_ids`は以下のように複数のユーザー指定も可能です。
:::

```
{
  "to_member_ids": [
    1,
    2,
    3
  ]
}
```

200のレスポンスコードと、"コメントの書き込みが終了しました。"のメッセージが表示されたらコメントの追加は完了です。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/e87c62398d22df24e4deca437835502f.png)

### 返信コメントを残す
同様にDiverta Support(30)のアカウントでログインして以下のコメントを残します。

```json
{
  "module_id": 1144,
  "name": "Diverta Support",
  "note": "KurocoはAPIファーストのヘッドレスCMSです。",
  "delkey": "",
  "to_member_ids": [
    27
  ]
}
```

:::caution
`"module_id": 1144` の部分は作成したコンテンツのIDを指定してください。
`"to_member_ids": [27]` の部分はコメントのあて先(今回はDiverta Taro)のメンバーIDを指定してください。
:::

![Image from Gyazo](https://t.gyazo.com/teams/diverta/05b7b41ff1366a4823fb4f2d95407e1d.png)

### コメントを確認する
Diverta Taro（メンバーID = 27）でログインをして、`comments`エンドポイントにリクエストを送ると、上記2つのコメントがレスポンスされます。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/cdf41329f9810a2848063e3807f5e963.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c237c8bce180b9e805265836ff092f15.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b0dd6d4dc6c053e4a112babc35e0d05f.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/f0af6aea615de94a224ccc112ce1f835.png)

:::info
表示項目の簡易化のため、上記キャプチャではエンドポイントの後処理に出力許可リストを設定しています。
:::

しかし、他のユーザ（Diverta Jiro、メンバーID = 22）でログインをして、`comments`エンドポイントにリクエストを送っても、レスポンスは得られません。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/4c6bad1355fcec395f4c023027148f39.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c237c8bce180b9e805265836ff092f15.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b0dd6d4dc6c053e4a112babc35e0d05f.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/e914a73201571559ae878444b4295260.png)

以上で動作の確認が完了です。
SuwaggerUIで確認した動作をフロントエンドで実装すると、HP上でサポートとプライベートチャットができるスペースを実装できます。  

Diverta Support(30)でログインをすると、Diverta Jiro(22)とのチャット内容も表示されますので、企業側の表示は必要に応じて調整ください。

## 関連ドキュメント
- [コンテンツにコメント機能を追加する](/ja/docs/tutorials/integrate-activity-comment/)
- [エンドポイント 設定項目一覧](/ja/docs/reference/endpoint-settings/)
- [アクティビティ定義](/ja/docs/management/comment-module-list/)
- [アクティビティ](/ja/docs/management/comment-list/)