kintone에서 파일을 다운로드하여 Google 문서에 쓰기

14530 단어 금과gas
kintone의 첨부 파일 필드에 저장된 파일을 다운로드하여 Google 문서에 쓰는 방법을 요약합니다.

소개



이번에는 아래와 같은 전 기사를 베이스로, 파일 다운로드와 Google Document에 기입하는 부분을 추기하고 있습니다.
Google Apps Script에서 OAuth 2.0에서 kintone API 사용

코드



전 기사의 코드와 다른 부분만 아래에 올려 둡니다.
function getService() {
  'use strict';
  const prop = PropertiesService.getScriptProperties(); // 固定値はプロパティストアから取得
  const subDomain = prop.getProperty('SUBDOMAIN');
  const clientId = prop.getProperty('KINTONE_OAUTH_CLIENT_ID');
  const clientSecret = prop.getProperty('KINTONE_OAUTH_CLIENT_SECRET');
  return OAuth2.createService('kintone')
    .setAuthorizationBaseUrl(`https://${subDomain}.cybozu.com/oauth2/authorization`)
    .setTokenUrl(`https://${subDomain}.cybozu.com/oauth2/token`)
    .setClientId(clientId)
    .setClientSecret(clientSecret)
    .setCallbackFunction('authCallback')
    .setPropertyStore(PropertiesService.getUserProperties())
    .setScope('k:app_record:read k:file:read'); // Kintone APIのスコープに k:file:read を追加
}
function createAndSendDocument(accessToken) {
  'use strict';
  const prop = PropertiesService.getScriptProperties();
  const subDomain = prop.getProperty('SUBDOMAIN');
  var appUrl = `https://${subDomain}.cybozu.com/k/v1/record.json?app=103&id=2`;
  var appUrlFile = `https://${subDomain}.cybozu.com/k/v1/file.json`;
  var doc = DocumentApp.create('Hello, world!');

  // kintoneからレコード取得
  function fetchRecord(url, token){
    return new Promise(resolve => {
        var response =  UrlFetchApp.fetch(url,
                       {
                         headers: {
                           Authorization: 'Bearer ' + token
                         }
                       }
                     )
        var result = JSON.parse(response.getContentText());
        resolve(result);
      })
  }

  // kintoneからファイルをダウンロードする
  function fetchFile(url, token, fkey){
    return new Promise(resolve => {
        var options = {
          'headers': {
            'Authorization': 'Bearer ' + token
          },
          'muteHttpExceptions': true
        };
        try {
          var response =  UrlFetchApp.fetch(`${url}?fileKey=${fkey}`, options);
          resolve(response);
        }
        catch (error) {
          console.log('error =>', error);
        }
      })
  }

  fetchRecord(appUrl, accessToken) // レコード取得
  .then(result => {
    var subject = doc.getName();
    doc.getBody().appendParagraph(subject + '\r\n' + result.record.message.value);
    return fetchFile(appUrlFile, accessToken, result.record.file.value[0].fileKey); // ファイルダウンロード
  })
  .then(result => {
    var blob = Utilities.newBlob(result.getContent());
    doc.getBody().appendParagraph(result.getContentText());
    doc.getBody().appendImage(blob); // ダウンロードしたファイルをGoogle Documentに書き込み
  })
  .catch(e => {
    console.log('error =>', e);
  });

}

킨톤 레코드





Google 문서





참고


  • htps : //로 ゔぇぺぺr. cy 흐림. 이오/hc/쟈/아르치 cぇs/202166180
  • htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 ps-sc 리 pt
  • htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 ps-sc 리 pt / 레후 렌세 / 도쿠 멘 t
  • htps : // 기주 b. 이 m / g 굉장히 vs / 아 ps-sc 리 pt- 오 th2
  • htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 ps-sc 리 pt / 레후 렌세 / 우치 치에 s
  • 좋은 웹페이지 즐겨찾기