Apakah google sheets memiliki webhook?

Google memiliki kemampuan yang luar biasa dan sering diabaikan dalam penawaran skrip Google mereka. Saya selalu menghindarinya dengan semacam PTSD sejak menggunakan VBscript di MSOffice. Namun baru-baru ini saya punya alasan untuk membuat fungsi khusus;

Persyaratan ini berarti saya mulai menjelajahi skrip Google lebih dalam, sejujurnya saya terkejut dengan kemampuan yang telah lama saya sembunyikan dari saya (https. // pengembang. google. com/apps-script/guides/sheets/functions) jadi saya pikir dengan semua skrip ini, dapatkah saya membuat webhook baris demi baris dari skrip Google, jawabannya adalah YA, dan itu sangat mudah

Aplikasi web terlebih dahulu

Saya tidak langsung membuka webhook, pertama saya ingin mencoba sesuatu yang saya baca tentang membuat Google sheet menjadi aplikasi web dan menerima webhook, itu cukup sederhana

Buat lembar baru dengan beberapa data

Contoh yang digunakan di bawah ini bersifat publik dan tersedia di sini (buat salinan untuk digunakan sendiri)

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

👍Nama Lembar

Jangan lupa beri nama yang bagus pada sheet Anda

Buka editor skrip

  1. Klik Alat dari bilah menu
  2. Pilih subitem "Editor skrip".
Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Tambahkan kode skrip (adsbygoogle = window.adsbygoogle || []).push({});

Kode di bawah ini dapat menggantikan Kode default. file gs

  1. sharedKey pada baris 14 perlu diganti dengan kunci bersama Anda
  2. sheetName pada baris 17 harus cocok dengan nama sheet Anda

Kode. gs

// Required function for publishing Google script app
// This funciton fires when a GET message is recieved
function doGet(e) {
  return HtmlService.createHtmlOutput("doGet request");
}

// Required fucntion for publishing Google script app
// This fucntion fires when a POST message is recieved
function doPost(e) {
  
  // Pandadoc Shared key found on Pandadoc webhook configratuion page. 
  // https://app.pandadoc.com/a/#/settings/integrations/webhook
  var sharedKey = "[Your Shared Key]";
  
  //Name of Sheet to be used.
  var sheetName = "Sheet1";
  
  try {
    
    // signature sent from PandaDoc
    var pandadocSignature = e.parameter.signature;
    // payload to be used to genreate signature for verification
    var input = e.postData.contents;
    
    // genreated signature from input & key 
    var byteArraySig = Utilities.computeHmacSha256Signature(input, sharedKey);
    
    // convert byte array into hex string
    var generatedSignature = byteArraySig.reduce(function(str,chr){
      chr = (chr < 0 ? chr + 256 : chr).toString(16);
      return str + (chr.length==1?'0':'') + chr;
    },'');               
    
    // compare generated signature with pandadoc signature. 
    // if they do not match the key has changed or payload has been modified 
    if ( pandadocSignature != generatedSignature ) 
    {
      throw new Error( "Webhook signature does not match. Key changed or payload has been modified!" );
    }
    
    
    // convert payload into js object
    // webhook events are only for one document so we can just extract the first array object
    var data = JSON.parse(e.postData.contents)[0].data;   
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
    
    // write some data to Google sheet. There is other data that can be used but these are common data point for every document
    sheet.appendRow([data.id, data.name,data.status,      data.date_created,data.date_modified, data.expiration_date,
                     data.created_by.email,data.grand_total.currency, data.grand_total.amount
                    ]);
    
  } catch (error) {
    // if something goes wrong we will append message to google sheet so it can be easily found
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
    sheet.appendRow([error])
  }
  return HtmlService.createHtmlOutput("doPost received");
}

Simpan proyek dan beri nama

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Publikasikan Aplikasi web

  1. Klik Terbitkan dari bilah menu
  2. Klik "Terapkan sebagai aplikasi web. "
Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?
  1. Berikan proyek nomor versi
  2. Setel akses aplikasi ke "Siapa saja, bahkan anonim"
Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

❗️Otentikasi - Verifikasi Tanda Tangan

PandaDoc mengirimkan Tanda Tangan dengan setiap kiriman webhook. Tanda tangan ini bersama dengan kunci bersama yang ditemukan di PandaDoc. Dapat digunakan untuk memverifikasi bahwa webhook berasal dari PandaDoc dan muatannya belum dimodifikasi

Jika diminta tinjau dan otorisasi izin

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Simpan URL Webhook

Salin URL aplikasi web dari perintah Sukses. Ini akan digunakan untuk membuat webhook PandaDoc Anda

Seharusnya terlihat seperti https://script.google.com/macros/s/[Some-Long-ID]/exec

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Buat PandaDoc Webhook

📘Rencana perusahaan

Webhook adalah fitur PandaDoc Enterprise Plan jika Anda tidak dapat membuat webhook, harap verifikasi paket Anda dan pilih "Akun" di panel kiri

Buat Webhook (adsbygoogle = window.adsbygoogle || []).push({});

Pergi untuk mengaktifkan webhook jika tidak dan klik ke pengaturan webhook

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Klik tombol "Buat webhook".

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Beri nama webhook dan salin URL dari lembar google Anda ke "Webhook endpoint URL" Klik Simpan untuk membuat webhook

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Setelah webhook dibuat, buka kembali pengaturan untuk mendapatkan SharedKey Anda

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Salin SharedKey dan tempelkan ke baris 14 Kode Lembar Google Anda. file gs

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

📘Perbarui Nama Lembar

Jika sheet Anda tidak bernama "Sheet1", Anda perlu memperbarui nama sheet di Kode. file gs. Ini dapat ditemukan di baris 17 variabel "sheetName"

Publikasikan GoogleSheet dengan Kunci yang diperbarui

  1. Publikasikan dari bilah menu
  2. Klik "Terapkan sebagai aplikasi web. "
  3. Pilih "Baru" dari tarik-turun versi Proyek
  4. Masukkan versi baru
  5. Klik Perbarui

🚧Publikasikan kode baru

Setiap kali perubahan dilakukan pada Kode Anda. gs file itu perlu diterbitkan dengan versi baru sebelum diterapkan

Tes

Hasil yang diharapkan adalah baris baru ditambahkan ke Google Sheet setiap kali dokumen dibuat, dikirim, dilihat, diselesaikan, atau dibayar

Untuk mengujinya, mulailah dengan membuat dokumen baru di PandaDoc. Baris baru akan muncul di akhir Google Sheet Anda. Seharusnya terlihat mirip dengan data di bawah ini

Apakah google sheets memiliki webhook?
Apakah google sheets memiliki webhook?

Kesalahan Umum

Jika kunci yang dibagikan tidak cocok dengan yang ditemukan di Pandadoc, Anda akan menerima kesalahan 'Error. Tanda tangan webhook tidak cocok. Kunci diubah atau payload telah dimodifikasi. '

Bagaimana cara menambahkan webhook ke Google Sheets?

Kirim data Google Spreadsheet ke webhook dengan POST .
Buat spreadsheet (atau pilih yang sudah ada) dan berikan tajuk kolom di baris pertama
Buat Zap baru
Tambahkan pemicu Baris Spreadsheet Baru atau Diperbarui Google Sheets
Tambahkan tindakan Webhooks by Zapier POST
Uji aksinya dan publikasikan Zap Anda

Bisakah Google Spreadsheet berinteraksi dengan API?

API data Google Spreadsheets adalah ekstensi dari protokol GData API, yang dapat Anda gunakan untuk membuat program yang berinteraksi dengan Google Spreadsheets .

Bagaimana cara membuat webhook Google?

Untuk membuat pemicu webhook menggunakan konsol Google Cloud. .
Buka halaman Pemicu. Buka halaman Pemicu build
Pilih proyek Anda dari bagian atas halaman dan klik Buka
Klik Buat pemicu
Klik Buat untuk membuat pemicu build Anda

Bisakah saya menggunakan Google Sheets API secara gratis?

Semua penggunaan Google Sheets API tersedia tanpa biaya tambahan .