何を実現したいのかを書きましょう
Google Apps Script(GAS)を利用して、kintone(キントーン)とスプレッドシートをAPI連携したいです。
発生した問題やエラーメッセージを具体的に書きましょう
下記サイトをもとに作成してみましたがエラーが発生しました。
(アプリのコード、サブドメイン、APIトークン書き換え済み)
【サイト】
【エラー内容】
Exception: https://※.cybozu.com のリクエストに失敗しました(エラー: 401)。サーバー応答の一部: Unauthorized <meta name=“viewport” content="width=device-width,initial-sca…(応答の全文を見るには muteHttpExceptions オプションを使用してください)
実行したコードをコピー&ペーストしましょう
コードをここに入力または貼り付け
//初期設定
const urlDomain = 'ここ1'; //①ドメイン情報
const appId = ここ2; //②ID番号
const apiToken = 'ここ3'; //③APIトークン
//メニュー追加
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("kintone")
.addItem("kintoneテストより取込む", "getRecords")
.addToUi();
}
//kintoneテストより取込む
function getRecords() {
const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在のスプレッドシート
const sheet = activeSpreadSheet.getSheetByName('シート1'); // シート1
sheet.clear();//前回データをクリア
const range = sheet.getRange('A1:I1');
var values = range.setValues([['会社名','部署名','担当者名','郵便番号','TEL','FAX','住所','顧客ランク','メールアドレス']]); //1行目に反映
// kintoneからデータを取得
var paramFields = "&fields=$id," + encodeURIComponent("会社名,部署名,担当者名,郵便番号,TEL,FAX,住所,顧客ランク,メールアドレス"); //取り込みたいデータのフィールドコードを指定
var urlGetRecords = "https://" + urlDomain + ".cybozu.com/k/v1/records.json";
var url = urlGetRecords + "?app=" + appId + paramFields;
var res = JSON.parse(UrlFetchApp.fetch(url, {"method": "get","headers": {"X-Cybozu-API-Token": apiToken}}));
// 取得したデータを整形
var output = [];
res["records"].forEach(function(record){
var row = [];
//先ほど指定したフィールドコードと型を指定
row.push(record["会社名"].value);
row.push(record["部署名"].value);
row.push(record["担当者名"].value);
row.push(record["郵便番号"].value);
row.push(record["TEL"].value);
row.push(record["FAX"].value);
row.push(record["住所"].value);
row.push(record["顧客ランク"].value);
row.push(record["メールアドレス"].value);
output.push(row);
});
// スプレッドシートに出力
//初期設定
const urlDomain = 'ここ1'; //①ドメイン情報
const appId = ここ2; //②ID番号
const apiToken = 'ここ3'; //③APIトークン
//メニュー追加
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("kintone")
.addItem("kintoneテストより取込む", "getRecords")
.addToUi();
}
//kintoneテストより取込む
function getRecords() {
const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在のスプレッドシート
const sheet = activeSpreadSheet.getSheetByName('シート1'); // シート1
sheet.clear();//前回データをクリア
const range = sheet.getRange('A1:I1');
var values = range.setValues([['会社名','部署名','担当者名','郵便番号','TEL','FAX','住所','顧客ランク','メールアドレス']]); //1行目に反映
// kintoneからデータを取得
var paramFields = "&fields=$id," + encodeURIComponent("会社名,部署名,担当者名,郵便番号,TEL,FAX,住所,顧客ランク,メールアドレス"); //取り込みたいデータのフィールドコードを指定
var urlGetRecords = "https://" + urlDomain + ".cybozu.com/k/v1/records.json";
var url = urlGetRecords + "?app=" + appId + paramFields;
var res = JSON.parse(UrlFetchApp.fetch(url, {"method": "get","headers": {"X-Cybozu-API-Token": apiToken}}));
// 取得したデータを整形
var output = [];
res["records"].forEach(function(record){
var row = [];
//先ほど指定したフィールドコードと型を指定
row.push(record["会社名"].value);
row.push(record["部署名"].value);
row.push(record["担当者名"].value);
row.push(record["郵便番号"].value);
row.push(record["TEL"].value);
row.push(record["FAX"].value);
row.push(record["住所"].value);
row.push(record["顧客ランク"].value);
row.push(record["メールアドレス"].value);
output.push(row);
});
// スプレッドシートに出力
sheet.getRange(2, 1, output.length, output[0].length).setValues(output);
}