Script JS Whatsapp Bot




Pembuatan Whatsapp Bot

Siapkan ini :

Spreedsheet, ChatGpt, Postman, AppScript, Fonnte / Api Whatsapp lainya.

Langkah-langkah :

  1. Pertama buatlah Spreadsheet.
  2. Buat APi key Chatgpt pada https://openai.com cari API Key.
  3. Buatkan sript pada Appscript https://www.google.com/script/start/, Kemudian salin script yang ada di bawah. Setelah itu lakukan deployment ,pilih web deploy buat public = anyone. Lalu deploy dan salin Url Webnya.
  4. Setelah ini lakukan uji coba di aplikasi Postman link download : https://www.postman.com/downloads , Tempelkan Url web tadi dan send. Jika tidak error maka lakukan langkah selanjutnya dibawah.
  5. buat akun fonnte di https://fonnte.com, Lalu Salin Web Url yang sudah oke tadi di Webhook Url atau jika ada platform yang bisa buat Api Whatsapp.
  6. Hubungkan device dengan Whatsapp anda, Whatsapp bot siap digunakan.
function doPost(e) {
  var data = JSON.parse(e.postData.contents);
  var sender = data.sender;
  var message = data.message;
  v
![](https://static.onecompiler.com/images/posts/42f622muc/bot3.jpg)
ar responseSent = false; // Menandai apakah sudah ada respons yang dikirim

  if (message.toLowerCase() === "chatbot" || 
      message.toLowerCase() === "1" ||
      message.toLowerCase() === "2" ||
      message.toLowerCase() === "3" ||
      message.toLowerCase() === "4" ||
      message.toLowerCase() === "xxxxxxx" ||
      message.includes('@628594xxxxx')) {
      
    // Jika pesan memenuhi salah satu kondisi, kirim respons
    if (message.toLowerCase() === "chatbot") {
      var replyMessage = "Halo!\nSaat ini Anda terhubung ke _*Chatbot Assist Soni*_ 🤖\nSaya bisa membantu menjawab dengan memilih opsi :\n\n*1. Pekerjaan*\n*2. Tugas kuliah*\n*3. Chat dengan Assist Ai Bot*\n*4. Tinggalkan Pesan*";
      sendFonnteReply(sender, replyMessage);
    } else if (message.toLowerCase() === "1") {
      var replyMessage = "_*Anda berada di data stok & expired*_.\n\nIni memerlukan akses dengan menjawab pertanyaan ini: \n*Siapa nama Spv Soni?*\n_Contoh: Dimas_";
      sendFonnteReply(sender, replyMessage);
    } else if (message.toLowerCase() === "2") {
      var replyMessage = fetchAllAssignments();
      sendFonnteReply(sender, replyMessage);
    } else if (message.toLowerCase() === "3") {
      var replyMessage = "Memindahkan Anda ke Chat GPT AI Bot.";
      sendFonnteReply(sender, replyMessage); // Gunakan scritp Gpt ai untuk mengedit ke chat gpt
    } else if (message.toLowerCase() === "4") {
      var replyMessage = "Tinggalkan pesan Anda di sini. Terima kasih!";
      sendFonnteReply(sender, replyMessage);
    } else if (message.toLowerCase() === "fauzi") {
      var replyMessage = fetchAllProductInfo();
      sendFonnteReply(sender, replyMessage);
    } else if (message.includes('@62859xxxxxxxx')) {
      var replyMessage = "Halo! Anda memanggil *Chatbot Assist* 🤖,karena Soni sedang Offline.\nChat pribadi ke nomor\nini untuk terhubung ke Bot dengan mengetik : *Chatbot*";
      sendFonnteReply(sender, replyMessage);
    }
    
    responseSent = true; // Setel menjadi true karena respons telah dikirim
  }
  
  // Jika tidak ada respons yang dikirim, kembalikan respons kosong
  if (!responseSent) {
    return ContentService.createTextOutput(JSON.stringify({status: "success"})).setMimeType(ContentService.MimeType.JSON);
  }
}

function fetchAllProductInfo() {
  var sheetUrl = "https://docs.google.com/spreadsheets/xxxxxxxxxx";
  var file = SpreadsheetApp.openByUrl(sheetUrl);
  var sheet = file.getSheetByName("kadaluarsa");
  var data = sheet.getRange("A2:C" + sheet.getLastRow()).getValues();

  var message = "_*Daftar Barang:*_\n\n";
  for (var i = 0; i < data.length; i++) {
    message += `Nama Barang: *${data[i][0]}*\nExpired (Fifo 1): ${data[i][1]}\nJumlah Barang: ${data[i][2]}\n\n`;
  }

  return message;
}

function fetchAllAssignments() {
  var sheetUrl = "https://docs.google.com/spreadshxxxxxxxxx";
  var file = SpreadsheetApp.openByUrl(sheetUrl);
  var sheet = file.getSheetByName("tugas");
  var data = sheet.getRange("A2:B" + sheet.getLastRow()).getValues();

  var message = "_*Daftar Tugas Kuliah*_:\n\n";
  for (var i = 0; i < data.length; i++) {
    message += `- Nama Tugas: *${data[i][0]}*\nFile: _${data[i][1]}_\n\n`;
  }

  return message;
}

function sendFonnteReply(target, message) {
  var payload = {
    'target': target,
    'message': message,
  };

  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    'headers': {
      'Authorization': 'YX7tLXxxxxxxxxxx' // Ganti dengan token API Fonnte Anda
    }
  };

  UrlFetchApp.fetch("https://api.fonnte.com/send", options);
}

// Fungsi untuk mengirim pesan ke API OpenAI untuk mendapatkan respon
function sendToOpenAI(content) {
  var apiKey = "sk-proj-kTpnmb738asxxxxxx"; // Ganti dengan API key OpenAI Anda
  var endpoint = "https://api.openai.com/v1/chat/completions"; // Ganti dengan endpoint OpenAI yang sesuai

  var payload = {
    "model": "gpt-4.0-turbo",
    "messages": [{ "role": "user", "content": content }],
    "temperature": 1,
    "max_tokens": 256,
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0
  };

  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + apiKey,
      "OpenAI-Beta": "assistants=v2"
    },
    "payload": JSON.stringify(payload)
  };

  var response = UrlFetchApp.fetch(endpoint, options);
  var responseData = JSON.parse(response.getContentText());

  return responseData;
}

// Fungsi untuk mengirim pesan ke thread
function sendToThread(content) {
  // Menggunakan OpenAI untuk mendapatkan respons
  var openAIResponse = sendToOpenAI(content);
  var responseContent = openAIResponse.choices[0].message.content; // Mengambil pesan dari respons OpenAI

  var apiKey = "sk-proj-kTpnmb738a9h78Gaxxxxxxx"; // Ganti dengan API key OpenAI Anda
  var endpoint = "https://api.openai.com/v1/threads/thread_abc123/messages"; // Ganti dengan endpoint thread yang sesuai

  var payload = {
    "role": "user",
    "content": responseContent
  };

  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + apiKey,
      "OpenAI-Beta": "assistants=v2"
    },
    "payload": JSON.stringify(payload)
  };

  var response = UrlFetchApp.fetch(endpoint, options);
  var responseData = JSON.parse(response.getContentText());

  return responseData;
}

// Fungsi untuk mendapatkan pesan dari thread
function getThreadMessages() {
  var apiKey = "sk-proj-XXXXXX"; // Ganti dengan API key OpenAI Anda
  var endpoint = "https://api.openai.com/v1/threads/thread_abc123/messages"; // Ganti dengan endpoint thread yang sesuai

  var options = {
    "method": "get",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + apiKey,
      "OpenAI-Beta": "assistants=v2"
    }
  };

  var response = UrlFetchApp.fetch(endpoint, options);
  var responseData = JSON.parse(response.getContentText());

  return responseData;
}

}

Follow me
Github : https://github.com/Sony-Agung
Linkedin : https://www.linkedin.com/in/soni-agung-wahyudiyanta-285901180
Project Lainya : https://bankcustomer-churn.streamlit.app/