スペースのスレッドにコメントを投稿する

目次

スペースのスレッド内コメントの投稿

スペースIDとスレッドIDを指定してスレッドにコメントを投稿します。

  • 宛先の名前には、APIを実行したユーザーの言語設定が使用されます。
  • 停止ユーザー/削除ユーザー/組織/グループには通知されません。
  • ゲストスペースの場合、退会したユーザーは削除ユーザーと同じ動作になります。
  • 招待中のゲストユーザーを宛先に指定するとエラーが発生します。

URL

https://sample.cybozu.com/k/v1/space/thread/comment.json

HTTPメソッド

POST

ゲストスペースの場合

https://sample.cybozu.com/k/guest/GUEST_SPACE_ID/v1/space/thread/comment.json

必要なアクセス権

  • スペースの閲覧権限
    非公開スペース/ゲストスペースの場合、スペース参加者のみ実行可能です。

リクエスト

パラメーター

スペースIDやスレッドIDは、URLから確認できます。
たとえば、URLが「https://sample.cybozu.com/k/#/space/250/thread/1026」の場合、スペースIDは「250」、スレッドIDは「1026」です。

パラメーター名 必須 説明
space 数値または文字列 必須 スペースID
thread 数値または文字列 必須 スレッドID
comment オブジェクト 必須 コメントの情報
投稿時の内容は次の順で構成されます。
  • comment.mentionsで指定される宛先情報
  • comment.textで指定されるコメント内容
  • comment.filesで指定される添付ファイル
comment.text 文字列 条件必須 コメントの内容
改行は「LF」で指定します。
コメントの最大文字数は65,535文字です。
comment.textcomment.filesのいずれかが必須です。
comment.mentions 配列 省略可 宛先情報
comment.mentions[].code 文字列 省略可 宛先のユーザー/組織/グループコード
指定できる宛先の数は、10個までです。
宛先を指定すると、本文の前に宛先が挿入されます。
宛先のユーザーにゲストユーザーを指定する場合、「guest/ログインメールアドレス」を指定してください。
comment.mentions[].type 文字列 省略可 宛先のユーザー/組織/グループの種類
  • USER:ユーザー
  • GROUP:グループ
  • ORGANIZATION:組織
comment.files 配列 条件必須 添付ファイルの一覧
5ファイルまで指定できます。
comment.textcomment.filesのいずれかが必須です。
comment.files[].fileKey 文字列 省略可 添付するファイルのファイルキー
ファイルをアップロードするAPIで取得したファイルキーを利用できます。
ファイルをアップロードするAPI
comment.files[].width 数値または文字列 省略可 添付ファイルが画像の場合に画像が表示される幅
100から750までの数値を指定できます。
省略すると、画面から投稿時に「元のサイズ」を選択したときと同じ幅で表示されます。
画像以外を指定した場合、無視されます。
リクエストの例
ヘッダー
1
2
3
{
  "X-Cybozu-Authorization": "QWRtaW5pc3RyYXRvcjpjeWJvenU="
}

リクエストヘッダーの詳細は共通仕様を参照してください。
kintone REST APIの共通仕様

ボディ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
  "space": 250,
  "thread": 1026,
  "comment": {
    "text": "本日のオススメ弁当です。\n弁当注文アプリの登録をお待ちしております。",
    "mentions": [
      {
        "code": "takahashi",
        "type": "USER"
      },
      {
        // 宛先のユーザーにゲストユーザーを指定する場合
        "code": "guest/yamada@test.jp",
        "type": "USER"
      },
      {
        "code": "営業本部_OZKQWZ",
        "type": "ORGANIZATION"
      },
      {
        "code": "管理部受付_zX6C6r",
        "type": "GROUP"
      }
    ],
    "files": [
      {
        "fileKey": "c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6",
        "width": 500
      }
    ]
  }
}

レスポンス

プロパティ
プロパティ名 説明
id 数値 投稿したコメントのコメントID
レスポンスの例
1
2
3
{
  "id": 410
}

サンプルコード

curlを使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
curl -X POST 'https://sample.cybozu.com/k/v1/space/thread/comment.json' \
  -H 'X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=' \
  -H 'Content-Type: application/json' \
  -d '{
    "space": 1,
    "thread": 1,
    "comment": {
      "text": "本日のオススメ弁当です。\n弁当注文アプリの登録をお待ちしております。",
      "mentions": [
        {
          "code": "takahashi",
          "type": "USER"
        },
        {
          "code": "guest/yamada@test.jp",
          "type": "USER"
        },
        {
          "code": "営業本部_OZKQWZ",
          "type": "ORGANIZATION"
        },
        {
          "code": "管理部受付_zX6C6r",
          "type": "GROUP"
        }
      ],
      "files": [
        {
          "fileKey": "c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6",
          "width": 500
        }
      ]
    },
  }'
kintone.api()を使ったリクエスト

kintone.api()の詳細は、次のページを参照してください。
kintone REST APIリクエストを送信する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const body = {
  space: 1,
  thread: 1,
  comment: {
    text: '本日のオススメ弁当です。\n弁当注文アプリの登録をお待ちしております。',
    mentions: [
      {
        code: 'takahashi',
        type: 'USER'
      },
      {
        code: 'guest/yamada@test.jp',
        type: 'USER'
      },
      {
        code: '営業本部_OZKQWZ',
        type: 'ORGANIZATION'
      },
      {
        code: '管理部受付_zX6C6r',
        type: 'GROUP'
      }
    ],
    files: [
      {
        fileKey: 'c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6',
        width: 500
      }
    ]
  }
};

await kintone.api(kintone.api.url('/k/v1/space/thread/comment.json', true), 'POST', body);