cedroid

Generate QR codes using Google Apps Script

Sep 25th, 2023
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.54 KB | Source Code | 0 0
  1.  
  2. const qrFolderId = "your-target-folder-id-here";
  3. var spreadsheetID = 'your-spreadsheet-id';
  4. var spreadsheet  = SpreadsheetApp.openById(spreadsheetID);
  5.  
  6. function generateQRcode() {
  7.   try {
  8.     Logger.log("Function started");
  9.  
  10.   // Sample userId hardcoded, you can generate it dinamycally
  11.   var newUserId= "01234";
  12.  
  13.   // Get the script URL
  14.   const scriptUrl = ScriptApp.getService().getUrl();
  15.  
  16.   // Combine the script URL and newUserId as a parameter
  17.   const combinedUrl = `${scriptUrl}?userId=${newUserId}`;
  18.   Logger.log("combined URL: " + combinedUrl); // Log the combined URL
  19.  
  20.   const encodedData = encodeURIComponent(combinedUrl);
  21.   Logger.log("encoded data: " + encodedData); // Log the encoded data
  22.  
  23.   // Generate QR code URL
  24.   const chartUrl = `https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=${encodedData}`;
  25.  
  26.   // Fetch the QR code image
  27.   const fetchedImage = UrlFetchApp.fetch(chartUrl).getBlob();
  28.  
  29.   // Open the Google Drive folder to save the QR code
  30.   var qrFolder = DriveApp.getFolderById(qrFolderID);
  31.  
  32.   // Create the file in Google Drive and save the QR code image
  33.   const file = qrFolder.createFile(fetchedImage);
  34.   file.setName(`QRCode_${new Date().getTime()}.png`);
  35.  
  36.   // Get the file ID
  37.   const fileId = file.getId();
  38.     spreadsheet.getSheetByName("your-sheet-name-here").appendRow([
  39.     file.getName(),
  40.     "https://drive.google.com/uc?id="+fileId
  41.     Utilities.formatDate(new Date(), "GMT-4", "MM/DD/YYYY")
  42.     ]);
  43.  
  44.   } catch (error) {
  45.     Logger.log("An error occurred: " + error.toString());
  46.   }
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment