新規投稿
フォローする

REST APIに関しまして

背景・実現したいこと

 REST APIを利用してphpからkintoneへデータを1件登録したいのですが、レコードは作成されても項目が設定されません。

同様の現象を探してみたのですが、確認できない状況となっております、ご参考等がございましたらご教示いただけますと助かります

利用したソースコード

// kintoneのアプリ情報を設定
$subdomain = '*******';
$appid = '99';
$token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

$basicLoginName = "basicid";
$basicPassword = "basicpass";

$header = array(
'Host: ' . $subdomain . '.cybozu.com:443',
'Content-Type: application/json',
'X-Cybozu-API-Token: ' . $token,
'Authorization:Basic: ' . base64_encode($basicLoginName . ':' . $basicPassword)
);

// テストデータ
$post_data[] = array(
'value'=>array(
"貴社名" => array(
"value" => "(会社名テスト)"
),
"メールアドレス" => array(
"value" => "(yyyy@aaaaa.co.jp)"
),
"お問合せ内容" => array(
"value" => "テストお問い合わせ"
),
"test_feild" => array(
"value" => "(test)"
)
)
);

$json = array(
"app" => $appid,
"records" => $post_data,
);

$json = json_encode($json);

echo $json;

// kintone へ post
$post_context = array(
"http" => array(
"method" => "POST",
"header" => implode("\r\n", $header),
"content" => $json,
"ignore_errors" => "true",
)
);

$response = file_get_contents(
'https://' . $subdomain. '.cybozu.com/k/v1/records.json',
false,
stream_context_create($post_context)
);
$pos = strpos($http_response_header[0], '200');
if ($pos === false) {
echo "データの登録ができませんでした。お手数ですが再度登録下さい。";
} else {
echo "データの登録が完了しました。";
}

0

7件のコメント

Avatar
村濱一樹

レコードは追加されるが、各フィールドが空で登録されてしまうという意味ですかね?

であれば、認証周りは大丈夫そうなので、送信しているJSONの問題ですね。フィールド名が間違っていたり構造がまちがっていたりの可能性があります。

JSONを貼り付けてもらうとなにかわかるかもしれません。

 

0
Avatar
Kintone 初心者です

早速のご意見ありがとうございます。echoしたJSONは以下のとおりです、よろしくお願いいたします。

※レコードは追加されますが、項目が空で作成されている状況です

{"app":"83","records":[{"value":{"\u8cb4\u793e\u540d":{"value":"(\u30d6\u30ec\u30a4\u30f3\u30a2\u30f3\u30c9\u30c8\u30e9\u30b9\u30c8)"},"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9":{"value":"(info@bandt.co.jp)"},"\u304a\u554f\u5408\u305b\u5185\u5bb9":{"value":"(\u30c6\u30b9\u30c8)"},"test_feild":{"value":"(test)"}}}]}

日本語文字列についても気にはなるのですが、英数項目(test_feild)も設定されないので、やはり登録が失敗しているのかと想定しました。

 

Kintone 初心者ですにより編集されました
0
Avatar
村濱一樹

https://developer.cybozu.io/hc/ja/articles/202166160-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E7%99%BB%E9%8C%B2-POST-#step2

一括登録のサンプルのリクエストボディの構造と良くくらべてみてください。
ここと構造がちがうので、空で登録されてしまってますね。

 

0
Avatar
Kintone 初心者です

村濱一樹

早々にありがとうございます、JSONも成形していただき重ね重ねありがとうございます。

確かに1階層不要でした、修正後実行しましたがやはり、空のレコードが作成されている状況が変わりません。何か環境的に必要または条件があるのでしょうか?

以下、修正後JSONです。

{"app":"83","records":[{"\u8cb4\u793e\u540d":{"value":"(\u30d6\u30ec\u30a4\u30f3\u30a2\u30f3\u30c9\u30c8\u30e9\u30b9\u30c8)"},"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9":{"value":"(info@bandt.co.jp)"},"\u304a\u554f\u5408\u305b\u5185\u5bb9":{"value":"(\u30c6\u30b9\u30c8)"},"test_feild":{"value":"(test)"}}]}

 

0
Avatar
村濱一樹

であれば、フィールドコードがやはり間違っている可能性はありますね。

フィールド名とフィールドコードは違うというのはご理解されていますでしょうか?一度見直してみたほうが良いかとおもいます!

https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/fieldcode.html

0
Avatar
Kintone 初心者です

村濱一樹

ご丁寧にご回答をありがとうございます、ご提示いただいたフィールドコード内容につきまして確認いたします。
ありがとうございます。

0
Avatar
Kintone 初心者です

村濱一樹
登録できました!
フィールドコード誤りが原因でした。複数にわたりご回答、アドバイスをありがとうございました。
大変助かりました、ありがとうございました。

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