JSONのリクエストヘッダーの記載場所

イベント発生時に、特定の顧客の最新の[対応日時]フィールドを取得したいと考えています。

(ゆくゆくはそれで別のアプリのフィールドを更新したいです。)

 

下記のコードでなかなかうまくいかず、コンソールにもエラーは表示されず、結果は、[Object,object]となり、おそらく目的のレコードを抽出できていないようです。

 

そこで、さらにいろいろ調べたところ、JSON形式の場合は、JSON用のリクエストヘッダーで指定しないといけないというのがわかり、おそらくこれを指定していないからだと思いました。

https://developer.cybozu.io/hc/ja/articles/202331474-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%8F%96%E5%BE%97-GET-

しかし、このリクエストヘッダーをどこに記述するかの解説がなく困っています。

なんとなく、javascriptファイルの中のfunction{}の前に記述するのかと思いましたが、当然エラーになりました。

 

多分とても基本的過ぎて解説されていないんだと思うのですが、自分で調べても明確な回答は得られませんでいた。

どなたか教えてください。

 

GET /k/v1/record.json HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json

(function() {
 “use strict”;

//PC用
 kintone.events.on([‘app.record.edit.show’],function(event) {
 //window.alert(‘はじめようkintone JavaScript API’);
 

 
 var body = {
      “app”: 16,
      “query”: ‘顧客No=21 order by 対応日時 desc limit 3’
      //“fields”: [“対応日時”]
 };
 
    
 kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, body, function(resp) {
   // success
  
   console.log(resp);
 }, function(error) {
       // error
       window.alert(error);
 }
 )})})();
   

kintone.api を使う場合、「JSON用のリクエストヘッダー」の指定は不要です。

XMLHttpRequest などを使用する場合に、指定します。

kintone REST API リクエスト

 

肝心の「結果は、[Object,object]となり」の処理が無いので推定ですが、

たぶん、API の呼び出しは問題なく、 応答内容の resp の使い方が悪いだけだと思われます。

※結果が1レコードでも配列で応答されます。

実際にどのような API 呼び出しを行っているか、ブラウザーの開発ツールで確認してみて下さい。

kintoneカスタマイズの基本的なデバッグの流れを身につけよう で、ステップ実行して変数の中身を確認すると簡単にわかります。

また、開発ツールの Network タブで、実行した API のパラメータや応答内容を確認できます。

 

ありがとうございます。

 

この場合は指定は不要なんですね。

 

コンソールログでエラーが出ないところまではできたのでリクエストヘッダーが原因かと思っていましたが、教えていただいたたデバッグ画面で、ブレイクし、レコードオブジェクトはきちんと取得できていることを確認しました。

残る原因は、フィールドの取得方法だと思い、“”.[]''などいろいろ試した結果、無事に値を取得することができました!

 

次は、顧客Noを変数化して、取得した値を別のアプリのフィールドに更新してあげるところに取り掛かりたいと思います。

無事に前に進めそうです。

ありがとうございました。