Зберігання данних з форм на сайті в Google Таблиці

apps script 2 хвилин 13 секунд 7 квіт. 2022
 Зберігання данних з форм на сайті в Google Таблиці

Google sheets дуже зручні у використанні та доступні з будь-якого пристрою. В Google є дуже потужний інструмент Apps Script, що дає змогу інтегруватись майже з усіма продуктами google, ми це використаємо для того, щоб данні з форми на сайті зберігались зразу в таблицю.

Спершу, що потрібно зробити створити саму таблицю.
Далі переходимо в Розширення -> App Script

Вставляємо код 

function doGet(e){
    console.info(e)
    setData(e)
}

function doPost(e){
  if(e.postData.contents)
    e.parameter =  JSON.parse(e.postData.contents)
    setData(e)
}
/**
 * set data request
 */
function setData(e) {
    try {      
      var ss = SpreadsheetApp.openById("1Y3PххххххххххVM7h9WCekM8"); // Змінюємо на свій ID таблиці    
      // тут ставимо співвідношення Назвпи параметру до колонки в таблиці   
      var column = {
        'name':'B',
        'text':'C'
      }
      var last = ss.getLastRow() + 1;
      for (var param in column){
          if (e.parameter[param]) ss.getRange(column[param] + last).setValue(e.parameter[param]);
      }
        // Встановлення поточної дати
      ss.getRange('A' + last).setValue(new Date());     

        // ss.getRange(last + ':' + last).setBackground('yellow');// Желтый фон строки
    } catch (e) {        
        console.log(e.message)
    } 
}

Перше що треба зробити 

  • Змінити id на id вашої таблиці 
  • Налаштувати колонки відповідно до ваших параметрів запиту (На прикладі запиту далі буде ясно)
  • Вводимо в дію наш скрипт та копіюємо Ідентифікатор введення в дію

Приклад запитів

JS

let data = {
   name : 'Mark',
   text : 'Text message'
}
fetch('https://script.google.com/macros/s/{Ідентифікатор введення в дію}/dev',{
    method: 'POST',
     headers: {
      'Content-Type': 'application/json'      
    },
    body: JSON.stringify()
}).then( res=>{
    res.json().then(r=>{
        console.log(r)
    })
} )

PHP

  $array = array(
            'name' => 'admin',
            'text' => '1234'
        );
            
        $id = '{Ідентифікатор введення в дію}';  
        $url = sprintf('https://script.google.com/macros/s/%s/exec',$id);
        
        $ch = curl_init($url);
        $payload = json_encode($array);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HEADER, false);
        $html = curl_exec($ch);
        curl_close($ch);

        echo $html;