カテゴリー内の他の記事

レコードコメントの投稿

レコードコメントの投稿

アプリIDとレコードIDを指定してレコードにコメントを投稿できます。

  • APIトークンを利用した場合、投稿ユーザーは「Administrator」になります。
  • メンションの名前は投稿ユーザーの言語設定が利用されます。
  • 停止ユーザー、削除ユーザー・組織・グループには通知されません。
  • ゲストスペースの場合、退会したユーザーは削除ユーザーと同じ動作になります。
  • 招待中のゲストユーザーにメンションを指定するとエラーになります。
  • レコードのコメント機能が無効な場合に実行するとエラーになります。

HTTP メソッド

POST

URI

https://(サブドメイン名).cybozu.com/k/v1/record/comment.json

ゲストスペース内のアプリの場合

https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/record/comment.json 

必要なアクセス権

  • コメントを投稿するアプリの閲覧権限
  • コメントを投稿するレコードの閲覧権限

リクエストパラメータ

パラメータ名 指定する値 必須 説明
app 数値又は文字列 必須 アプリのIDを指定します。
record 数値又は文字列 必須 レコードIDを指定します。
comment オブジェクト 必須 コメントの情報です。
comment.text 文字列 必須 コメントの内容です。
コメントの最大文字数は65535文字です。
comment.mentions 配列   メンションの宛先情報です。
comment.mentions[].code 文字列  

メンション先のユーザー・組織・グループコードです。
指定できるメンション数の上限値は10です。
メンションを指定すると、本文の前にメンションが挿入されます。

※メンション先のユーザーにゲストユーザーを指定する場合、
code に「guest/ログインメールアドレス」を指定する必要があります。

comment.mentions[].type 文字列  

メンション先のユーザー・組織・グループの種類です。

  • USER:ユーザー
  • GROUP:グループ
  • ORGANIZATION:組織

リクエストの例

リクエストヘッダを含んだ文字列

POST /k/v1/record/comment.json HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
  • Content-Type に application/json を指定して下さい。 指定しない場合は JSON が解釈できないため、実行時エラーとなります。

ボディ

レスポンス

投稿したコメントのIDが返されます。

JavaScriptサンプル

kintone REST API

XMLHttpRequest

APIトークンで投稿した例

制限事項

共通仕様の制限事項 をご確認ください。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
鶴見

上記APIトークンを使用したコメント投稿を行ったのですが、

投稿者が、ログインユーザーとなりました。

現在の仕様と変更されているのでしょうか?

Avatar
cybozu Development team

鶴見様

お世話になっております。
cybozu developer network 運営局です。

変更されていない認識です。
また、API トークンによる認証で curl にて実行してみましたが、Administrator で投稿されたことを確認いたしました。

curl -X POST 'https://{subdomain}.cybozu.com/k/v1/record/comment.json' \
-H 'X-Cybozu-API-Token:API_TOKEN' -H 'Content-Type: application/json' \
-d '{"app": 168, "record": 20, "comment": {"text": "test","mentions": []}}'

差し支えなければ、ドメイン情報や認証情報を秘匿していただき、
コメント投稿リクエスト部分のコードをご教示いただけないでしょうか?

Avatar
鶴見
運営様
ご対応感謝します。
以下が、リクエスト部分の記述になります。
エラー等の発生はなく、投稿自体は正常に行える状態です。
 
    let body = {
       "app":"app",
       "record":"record",
       "comment":{
         "text":"text"
       },
       "__REQUEST_TOKEN__": kintone.getRequestToken()
    };
    let URL = kintone.api.url('/k/v1/record/comment', true);
    let xhr = new XMLHttpRequest();
    xhr.open('POST', URL);
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.onload = function() {
    if (xhr.status === 200) {
        // success
        console.log(JSON.parse(xhr.responseText));
    } else {
        // error
        console.log(JSON.parse(xhr.responseText));
    }
};
xhr.send(JSON.stringify(body));
Avatar
cybozu Development team

鶴見様

お世話になっております。
cybozu developer network 運営局です。

見たところ、API トークンではなく、「"__REQUEST_TOKEN__": kintone.getRequestToken()」と指定しているので、
セッション認証が使われております。

https://developer.cybozu.io/hc/ja/articles/115005294843

API トークン認証を行うには、リクエストのヘッダーとして X-Cybozu-API-Token の指定が必要です。
参照:API トークン認証 / APIトークンを使ってみよう

例えば、次のリクエストだとAPIトークン認証でリクエストできるかと思います。

 var body = {
"app": "app",
"record": "record",
"comment": {
"text":"text"
}
};
var url = "/k/v1/record/comment";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("X-Cybozu-API-Token", "API_TOKEN");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = function() {
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify(body));

 

Avatar
鶴見

ご返答ありがとうございます。

トークン認証方法が違ったのですね。

お手数おかけしました。

無事解決しました。

Avatar
やーさん

メンション先のユーザーにゲストユーザーを指定する場合、どのように指定すればよいでしょうか?

ゲストユーザー名「●●」 ログインメールアドレス「●●@●●.com」

どちらを設定しても、「ユーザーが見つかりません」というエラーになります。

Avatar
cybozu Development team

やーさん 様

お世話になっております。cybozu developer network でございます。

メンション先のユーザーにゲストユーザーを指定する場合、
下記のようにcodeを「guest/ログインメールアドレス」に指定する必要があります。

-d '{"app": 168, "record": 20, "comment": {"text": "test","mentions": [{"code": "guest/●●@●●.com","type": "USER"}]}}'

後ほど記事に記載を追加いたします。ご指摘頂きありがとうございました。
よろしくお願いいたします。

サインインしてコメントを残してください。