Script JS Whatsapp Bot
Pembuatan Whatsapp Bot
Siapkan ini :
Spreedsheet, ChatGpt, Postman, AppScript, Fonnte / Api Whatsapp lainya.
Langkah-langkah :
- Pertama buatlah Spreadsheet.
- Buat APi key Chatgpt pada https://openai.com cari API Key.
- 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.
- 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.
- 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.
- 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

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/