Gg / 下載在GoogleCharts製作QrCode的圖檔

下載在GoogleCharts製作QrCode的圖檔

這是從Gg / 使用GoogleCharts快速製作QrCode延伸而來的

基本原理是透過fetch傳遞QR Code的參數到Google QR Code API

取得回傳的QR Code 圖檔

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function myQR() {
  //課程代碼
  var cId = '3116469';
  
  //fetch傳遞的payload資料設定
  var params={
    'chs':'120x120',
    'cht':'qr',
    'chld':'M|3',
    'chl':'https://inservice.edu.tw/NAPP/CourseView.aspx?cid='+cId
  }

  //fetch參數設定
  var options={
     'menthod':'get',
     'payload':params
  }

  //Google qr code api
  var url = 'https://chart.googleapis.com/chart' ;
  
  //fetch連線
  var hData = UrlFetchApp.fetch(url,options);
  
  //伺服器連線情況代碼
  var rowRe = hData.getResponseCode();
  Logger.log(rowRe);
  //Logger.log(hData.getContent());
  
  if (rowRe == '200'){
    //#1
    var fileBlob = hData.getBlob().getAs('image/png').setName('研習代碼-' + cId + '.png');
    fileBlob= DriveApp.createFile(fileBlob);
    
    //#2
    //var fileBlob = Utilities.newBlob(hData.getContent(), 'image/png', '研習代碼-' + cId + '.png');
    //fileBlob= DriveApp.createFile(fileBlob);
        
    Logger.log('fetch 成功')
    Logger.log(fileBlob.getDownloadUrl());

  }else{

    Logger.log('fetch 失敗');

  }

}

 

#2 – 20

是fetch相關參數設定

包含傳入的資料以及連線方式

#23

執行fetch連線

並用代數hData來接收連線的回傳資料

#30 ~ 46

透過判斷式來判斷伺服器情況,成功取的回傳資料才進行檔案處理

儲存回傳的資料方式有2種

hData.getBlob().getAs('image/png').setName('研習代碼-' + cId + '.png');
Utilities.newBlob(hData.getContent(), 'image/png', '研習代碼-' + cId + '.png');

差別在於處理Blob的方式

最後都是透過DriveApp.createFile()產生實體檔案

由於是透過Google Apps Script操作

產生的檔案沒有特別設定的話都是儲存在雲端硬碟的根目錄下