KintoneのHTTP要求(POST)の作成方法について

HTTP要求のアクティビティを使って、Kintone上のアプリにレコードを1件追加したいと考えております。
以下が、Kintoneのレコード登録におけるAPI仕様になります。

対象アプリは以下となります。


仕様を読み、認証までは通っており、パラメータのプロパティに以下を設定しました。
appは合っているかと思いますが、recordの値が合っていないので、「不正なJSON文字列です」のエラーが返ってきます。
recordには以下を設定しています。
" {‘日付’: {‘value’: [2021-05-22]},‘業務内容’: {‘value’: ‘test’},‘所管、学び’: {‘value’: ‘test’}"
上記のような場合、JSON文字列になっているため、ボディに書くべきといった内容も読みましたが、理解できておりません。

色々フォーラムの内容や他記事も調べてみましたが、HTTP要求のアクティビティ野使い方や、REST APIをしっかり理解していないため、解決方法が分かりません。
以下についてご回答お願いいたします。
・recordの中身の記載形式について、合っているかどうか
・パラメータのプロパティとボディのプロパティの使い分けについて
大変お手数をおかけしますが、よろしくお願いいたします。

上記間違いがありましたので、修正しました。
ですが、エラー内容は同様でございます。

末尾にカッコがひとつ足りていないようです。
JSONデータをバリデート(検証)してくれるサイトがあるので、そちらで確認していただければと思います。

ご確認ありがとうございます。
ご教示いただいたバリデートサイトで確認してみたところ、確かに末尾に「}」が足りなかったため、追加して再度実行してみましたが、同じ「不正なJSON文字列です」のエラーが返ってきました。
修正内容は以下となります。
“{‘日付’: {‘value’: ‘2021-05-22’},‘業務内容’: {‘value’: ‘test’},‘所管、学び’: {‘value’: ‘test’}}”

カンマがおかしいようです。
誤)所管、学び
正)所管,学び

ご指摘いただき、ありがとうございます。
ご指摘いただいたように、'所感、学び’を’所感,学び’にして、以下のように修正しましたが、やはり同様に「不正なJSON文字列です」のエラーが返ってきました。
“{‘日付’: {‘value’: ‘2021-05-22’},‘業務内容’: {‘value’: ‘test’},‘所感,学び’: {‘value’: ‘test’}}”

シングルクォートを、ダブルクォートに直してみるのはいかがでしょう。
ちなみに文字列としてダブルクォートを使うには "" と、ダブルクォートを2つ重ねればいけます。

失礼しました。「所管、学び」は列名なんですね。勘違いしました。
いわさきさんの言う通り、ダブルクォートで書いてみると通るかもしれません。

{“日付”: {“value”:“2021-05-22”},“業務内容”: {“value”: “test”},“所管、学び”: {“value”: “test”}}

コードでセットする際は「“”」と2つ重ねて書くと1つの「"」になります。

“{”“日付”“: {”“value”“:”“2021-05-22"”},““業務内容””: {““value””: ““test””},““所管、学び””: {““value””: ““test””}}"

値をセットするのが大変ならString.Formatで整形すると楽かと思います。

String.Format(“{{”“日付”“: {{”“value”“:”“{0}”“}},”“業務内容”“: {{”“value”“: “”{1}”“}},”“所管、学び”“: {{”“value”“: “”{2}”“}}}}”, “2021-05-22”, “test”, “test”)

いわさきさん、ご指摘いただき、ありがとうございます。
ご指摘いただいた内容をもとに、
みやぎさんにも記載いただいたコードを活用してみましたが、同様のエラーが返ってきました💦
何が問題なのか、全くわからないです💦

みやぎさん、ご指摘いただき、ありがとうございます。
みやぎさんにも記載いただいたコードを活用しつつ、以下のようにパラメータプロパティにセットしましたが、同じエラーが返ってきました。


“{“日付”: {“value”:“2021-05-22”},“業務内容”: {“value”: “test”},“所感、学び”: {“value”: “test”}}”
また「“”」と2つ重ねて書くパターンもやりましたが、同様のエラーが返ってきました。
“{”“日付”“: {”“value”“:”“2021-05-22"”},““業務内容””: {““value””: ““test””},““所感、学び””: {““value””: ““test””}}"
※すみません。所管ではなく、所感でした。誤字がありました。

いちど、レコードの追加ではなく、レコードの取得を試してみてはいかがでしょうか。
取得の操作で得られるJSONを見て、追加したいもののJSONと比較してみる、という案です。

返信遅くなり、申し訳ございません。
また何度もアドバイスいただき、本当にありがとうございます。

ご助言頂いた通り、一度、レコードの取得でJSONを確認しましたところ、以下★となっていました。
“業務内容”や、”所感、学び”が”文字列__複数行_”、”文字列__複数行_0”になっていることが確認できたため、以下のように変更して投げてみましたが、また同様の「不正なJSON文字列です」のエラーが返ってきました💦

“{”“日付”“: {”“value”“:”“2021-05-22"”},““文字列__複数行_””: {““value””: ““test””},““文字列__複数行__0””: {““value””: ““test””}}"
仕様には、以下のような記載もあったので、全てのフィールドの値は必要ないと思っていますが、よくわかっておりません。
「 * 省略した場合は、全フィールドの値が初期値で登録されます。

  • 存在しないフィールドコードを指定した場合、その部分は無視されます。」

★以下が、レコード取得の結果となります。
{
“record”: {
“レコード番号”: {
“type”: “RECORD_NUMBER”,
“value”: “1”
},
“更新者”: {
“type”: “MODIFIER”,
“value”: {
“code”: “XXX”,
“name”: “XXX”
}
},
“作成者”: {
“type”: “CREATOR”,
“value”: {
“code”: “XXX”,
“name”: “XXX”
}
},
“ラジオボタン”: {
“type”: “RADIO_BUTTON”,
“value”: “達成”
},
“ドロップダウン”: {
“type”: “DROP_DOWN”,
“value”: “XX”
},
“$revision”: {
“type”: “REVISION”,
“value”: “1”
},
“更新日時”: {
“type”: “UPDATED_TIME”,
“value”: “2021-05-21T00:55:00Z”
},
“文字列__複数行__0”: {
“type”: “MULTI_LINE_TEXT”,
“value”: “(サンプル)受注が確定しました!\n”
},
“文字列__複数行_”: {
“type”: “MULTI_LINE_TEXT”,
“value”: “(サンプル)サイボウズ株式会社を訪問しました。\n\n”
},
“添付ファイル”: {
“type”: “FILE”,
“value”:
},
“作成日時”: {
“type”: “CREATED_TIME”,
“value”: “2021-05-22T00:55:00Z”
},
“日付”: {
“type”: “DATE”,
“value”: “2021-05-22”
},
“$id”: {
“type”: “ID”,
“value”: “1”
}
}
}

同様の問題に直面しまして、こちらのスレッドに辿りつきました。

色々試して成功した結論としては、HttpClientアクティビティの、Parametersプロパティではなく、BodyプロパティにしかるべきJSONを文字列として構成して代入する。が解決策でした。

なので、app も record もまとめてJSON文字列で記載して、Bodyプロパティに代入。で上手くいくかと思います。

2 Likes