@sunsunshun

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

KINTONEとGoogleスプレッドシートのGASを使用した連携について

初めてでまた初心者です。
ご教授いただきますようよろしくお願い致します。
KINTONEとGoogleスプレッドシートをGASで連携させたいです。また連携の際にはベージック認証も用いています。例として1000件のレコードを取得したいと思っています。
しかし、実行すると、後ろから100件のレコードが繰り返し10回表示されるだけで、すべてのレコードを表示できません。

function fetchKintoneData() {
var domain = '*****'; // Kintoneのドメイン名
var appID = ; // KintoneのアプリID
var limit = 100; // 1回のリクエストで取得するレコード数
var totalRecords = 1000; // レコードの総数(例として1,000件とします)
var offset = 0; // レコード取得のオフセット
var username = '
'; // ベーシック認証のユーザー名
var password = '
***'; // ベーシック認証のパスワード

// 全てのレコードを取得するまでループ処理を行う
let countN =2;
while (offset < totalRecords) {
var url = 'https://' + domain + '.cybozu.com/k/v1/records.json?app=' + appID; + ' & offset=' + offset + ' & limit=' + limit;
var headers = {
'X-Cybozu-API-Token': '********************', // KintoneのAPIトークン
'Authorization': 'Basic ' + Utilities.base64Encode(username + ':' + password), // ベーシック認証のユーザー名とパスワード
};
var options = {
method: 'GET',
headers: headers,
limit:100

};

var response = UrlFetchApp.fetch(url, options);
var responseData = JSON.parse(response.getContentText());

// 取得したレコードの処理
for (var i = 0; i < responseData.records.length; i++) {
  var record = responseData.records[i];
  
  // レコードのデータを利用して任意の処理を行う

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('*****');
  sheet.getRange(countN+i, 1).setValue(record.年.value);
  sheet.getRange(countN+i, 2).setValue(record.月.value);
  sheet.getRange(countN+i, 3).setValue(record.項目.value);
  sheet.getRange(countN+i, 4).setValue(record.値.value);
  console.log(countN+i); 
  
}


// 次のオフセットを計算
offset += limit;
countN += 100;

}

console.log(countN);
console.log(offset);
}

初めての投稿なので表示もおかしいかも・・・:frowning2:

0 likes

No Answers yet.

Your answer might help someone💌