Namokonov

get_report_from_no_api_site_gas

Sep 12th, 2021
1,839
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. ✅ Канал о Таблицах: https://t.me/google_sheets
  3. ✅ Чат: https://t.me/google_spreadsheets_chat
  4. ✅ Оглавление канала: https://goo.gl/HdS2qn
  5. */
  6.  
  7. //отправляем логин и пароль и получаем куки
  8. function getDoggyLogsCookie() {
  9.   let url = 'https://doggylogs.com/login/authenticate'
  10.   let params = {
  11.     method: "POST",
  12.     'contentType': 'application/x-www-form-urlencoded',
  13.     "followRedirects": false,
  14.     'payload': {
  15.       'username': '123', 'password': '456'
  16.     }
  17.   };
  18.  
  19.   let resp = UrlFetchApp.fetch(url, params)
  20.  
  21.   let headers = resp.getAllHeaders();
  22.   let cookies = headers['Set-Cookie'].split(';')[0];
  23.  
  24.   return cookies;
  25. }
  26.  
  27. //берем куки и идём за отчётом в csv
  28. function getCsvReport(cookie) {
  29.   let params = {
  30.     "method": "GET",
  31.     "headers": {
  32.       "Cookie": cookie
  33.     }
  34.   };
  35.   let url = "https://doggylogs.com/report/walks";
  36.   response = UrlFetchApp.fetch(url, params);
  37.   var csvContent = response.getContentText();
  38.   Logger.log(csvContent);
  39.   return csvContent;
  40. }
  41.  
  42. //парсим csv
  43. function parseCsvResponse(csvString) {
  44.   var retArray = [];
  45.  
  46.   var strLines = csvString.split(/\n/g);
  47.   var strLineLen = strLines.length;
  48.   for (var i = 0; i < strLineLen; i++) {
  49.     var line = strLines[i];
  50.     if (line != '') {
  51.       retArray.push(line.replace(/"/g, "").split(/;/));
  52.       //replace ; with separator from your CSV file
  53.     }
  54.   }
  55.  
  56.   return retArray;
  57. }
  58.  
  59. //всё вместе, а еще
  60. //вставляем то, что получилось на Лист1 нашей Таблицу
  61. function main() {
  62.   let csv = parseCsvResponse(getCsvReport(getDoggyLogsCookie()))
  63.   Logger.log(csv);
  64.   SpreadsheetApp.getActive().getSheetByName('Лист1')
  65.     .getRange(1, 1, csv.length, csv[0].length)
  66.     .setValues(csv);
  67.  
  68. }
  69.  
  70.  
Advertisement
Add Comment
Please, Sign In to add comment