📁
GASでkintoneの添付ファイルをGoogleDriveに保存する
kintoneの添付ファイルをGoogleDriveに保存してみましょう👀
GASの使い方は調べてね✨✨
アプリの準備
アプリとAPIトークンを準備します。
アプリに必要なフィールドは「添付ファイルフィールド」です。
ファイルを何か添付しておきましょう。
↓こんなアプリを準備しました。
fileKeyとファイル名を取得する
↓レコード情報を取得するのはこの記事が参考になるかと思います。
↓GASでHTTPリクエストするのはこちらを参考に
// fileKeyとファイル名を取得する
const url_get = 'https://【サブドメイン】.cybozu.com/k/v1/record.json?app=【アプリID】&id=【レコード番号】';
const options = {
headers : {
'X-Cybozu-API-Token' : "【APIトークン】",
},
};
const resp_get = UrlFetchApp.fetch(url_get,options);
const data = JSON.parse(resp_get);
const fileKey = data.record.添付ファイル.value[0].fileKey;
const fileName = data.record.添付ファイル.value[0].name;
ファイルをダウンロードする
↓kintoneでのファイルのダウンロードのお作法についてはコードはこちらを参考にしてね
// ファイルをダウンロードする
const url_file = 'https://【サブドメイン】.cybozu.com/k/v1/file.json?fileKey=' + fileKey;
const resp_file = UrlFetchApp.fetch(url_file, options);
const blob = resp_file.getBlob();
// ファイル名をつけ直す
blob.setName(fileName);
GoogleDriveに保存する
保存したいフォルダのIDをメモって使います。
フォルダのIDはGoogleDriveのフォルダのURLの最後のランダムな文字列。
https://drive.google.com/drive/folders/【フォルダのID】
↓コードはこちらを参考に
// GoogleDriveの指定のフォルダに保存する
const folder = DriveApp.getFolderById("【フォルダのID】");
const driveFile = folder.createFile(blob);
コード全体
こんな感じになります。
突貫工事的なコードなので、関数化したりして使いやすくしてみてね✨✨
function kintone2GoogleDrive(){
// fileKeyとファイル名を取得する
const url_get = 'https://【サブドメイン】.cybozu.com/k/v1/record.json?app=【アプリID】&id=【レコード番号】';
const options = {
headers : {
'X-Cybozu-API-Token' : "【APIトークン】",
},
};
const resp_get = UrlFetchApp.fetch(url_get,options);
const data = JSON.parse(resp_get);
const fileKey = data.record.添付ファイル.value[0].fileKey;
const fileName = data.record.添付ファイル.value[0].name;
// ファイルをダウンロードする
const url_file = 'https://【サブドメイン】.cybozu.com/k/v1/file.json?fileKey=' + fileKey;
const resp_file = UrlFetchApp.fetch(url_file, options);
const blob = resp_file.getBlob();
// ファイル名をつけ直す
blob.setName(fileName);
// GoogleDriveの指定のフォルダに保存する
const folder = DriveApp.getFolderById("【フォルダのID】");
folder.createFile(blob);
}
Discussion