外部環境(google)から101件以上のデータを取得できません。

こんにちは

今現在Google spreadsheetからkintoneのデータを取得したいと考えているのですが101件以上のデータを取得することができません。

下記のコードで取得しているのですが、101件以上のデータを記述するためにはどうすればよいでしょうか?

よろしくお願いします。


function getkinrecord() {

  // サイボウズのURL

  var urlGetRecords = “https://~”;

  //サイボウズアプリのID

  var appId = ?;

  //アプリのAPI

  var apiToken = ‘A~’;

  // kintoneからデータを取得

  var paramFields = “&fields=$id,” +

    encodeURIComponent(“レコード番号”);

 

  var url = urlGetRecords + “?app=” + appId + paramFields ;

//ここで取得

  var res = JSON.parse(UrlFetchApp.fetch(url, { 

    “method”: “get”, “headers”: {

       “X-Cybozu-API-Token”: apiToken, 

       }, }));

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘over100’);

  // Logger.log(res.records[0].レコード番号.value)

  for (let i = 0; i <= res.records.length -1; i++) {

    if(res.records[i].レコード番号.value == undefined){continue}

    let a = res.records[i].レコード番号.value

    let b = 1

    sheet.getRange(1 + i,b + 1).setValue(a);

  }

}

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-

に記載のある

「一度に取得できるレコードは 最大500件(初期値は100件)までです。」

ということで100件以上の指定をしていないからということでしょうか?

回答いただきありがとうございます。

しかしそれは分かっているのですが、やり方がわからないのです。

limitは500件でoffsetでレコードの位置を操作する理屈がわかるのですが

どうコードを書けばいいのかがわからないので、ここに質問をさせていただきました。

 var paramFields = "&fields=$id," +
    encodeURIComponent("レコード番号");

に limit 500 などをいれれば、100件以上はとれそうですがだめでしょうか?

500件よりも多い場合は、

offset の制限値を考慮した kintone のレコード一括取得について – cybozu developer network
https://developer.cybozu.io/hc/ja/articles/360030757312

を参考にすることになります。

ふたたび回答いただきありがとうございます。

  var paramFields = “&fields=$id” + “&limit=200” +

    encodeURIComponent(“レコード番号”);

  var url = urlGetRecords + “?app=” + appId + paramFields;

  var res = JSON.parse(UrlFetchApp.fetch(url, { “method”: “get”, “headers”: { “X-Cybozu-API-Token”: apiToken, }, }));

 

こんな感じで書いているのですがレコード100件しか取得できなくて・・・

いま書き方を調べている感じです。

  // kintoneからデータを取得
 const paramFields = "&fields=$id," + encodeURIComponent("レコード番号");
 const query = paramFields + encodeURI("&query=limit 200")
 const url = urlGetRecords + "?app=" + appId + query;

のようにしたらこちらでは動作しました。

app=,fields=,query=の項目だてが必要のようです。

神のごとくあがめそうな勢いで感謝します。

私一人では永遠にたどり着きませんでした。

これでなんとかなりそうです。

そうかencodeURI(“”)ですか。

ありがとうございました。引き続きがんばってみます。

encodeURIかencodeURIComponetの違いは

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

で解説されていました。

質問内にあった使い方をする限りは

encodeURIComponent("レコード番号");

問題なさそうでした。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。