Main /
GS-meta
update token meta di google-sheet
var clid = "129809356xxxxxx" //client_id
var sec = "925xxxxxxxxxxxxxxxxxxxxxx" //client_secret
var old = sh1.getRange("E2").getValue() //cell lokasi token lama
var url1 = "https://graph.facebook.com/v15.0/oauth/access_token?grant_type=fb_exchange_token&client_id="+clid+"&client_secret="+sec+"&fb_exchange_token="+old
var res = UrlFetchApp.fetch(url1);
console.log(res.getContentText())
var js = JSON.parse(res.getContentText());
sh1.getRange("E2").setValue(js['access_token']); //update token ke cell
sh1.getRange("F2").setValue(js['expires_in']); //update expired
anu-webhook-meta
dipaksa respon 200 OK HTTPS
function doGet(e) {
try {
var x = e['parameter']['hub.challenge'].length
var ch = e['parameter']['hub.challenge']
te = ContentService.createTextOutput(ch)
return te
} catch(err) {
var to = ContentService.createTextOutput("200 OK HTTPS")
return to
}
}///end doGet
contoh reply pesan
function gowa30(num,text){
id = "113778281xxxxx" //Phone number ID: 113778281xxxxxxx
text = text+"\nini adalah echo" //contoh pesan balasan
if(text.length<2){return false;}
if(text==" "){return false;}
var bx = sh1.getRange("E2").getValue() //bearer auth akun
var tee = {
"body": text
}
var da = {
"messaging_product":"whatsapp",
"to": num,
"text": JSON.stringify(tee)
}
var hdx = {"Authorization" : "Bearer "+bx}
var url1 = "https://graph.facebook.com/v15.0/"+id+"/messages"
var spost =
{
"method" : "POST",
"muteHttpExceptions": true,
"headers" : hdx,
"payload" : da,
};
h = UrlFetchApp.fetch(url1, spost);
console.log(h.getContentText())
return true
}////
contoh doPost (handle respon api meta)
function doPost(e) {
try { ///area bot tele
var data = JSON.parse(e.postData.contents);
var text = data.message.text;
var text0 = data.message.text;
var id = data.message.chat.id;
if (id=="242539199" && text.substring(0, 1) == ("@")){
var ss = text0.split('@')
gowa(ss[1],ss[2])
return
}else if (id=="242539199" && text.substring(0, 1) == ("#")){
var rr = text.split('#')
gowa2(rr[1],rr[2])
return
}else if (id=="242539199" && text.substring(0, 6) == ("/start")){
notif("oke")
return
}
} catch(err) { console.log("do-nothing") }
/////////////////////////////////////////////////////
try { ///area bot WA text
var data = JSON.stringify(e)
sh2.getRange("A1").setValue(data)
var dx = e['postData']['contents']
sh2.getRange("A2").setValue(dx)
dx = JSON.parse(dx)
let j = sh2.getLastRow()+1
var id = dx['entry'][0]['changes'][0]['value']['messages'][0]['id']
readx(id) //update jadi read
var hp = dx['entry'][0]['changes'][0]['value']['messages'][0]['from']
var typ = dx['entry'][0]['changes'][0]['value']['messages'][0]['type']
var who = dx['entry'][0]['changes'][0]['value']['contacts'][0]['profile']['name']
var mehp = dx['entry'][0]['changes'][0]['value']['metadata']['display_phone_number']
if(typ=="text"){
var me = dx['entry'][0]['changes'][0]['value']['messages'][0]['text']['body']
sh2.getRange("A"+j).setValue(id)
sh2.getRange("B"+j).setValue(hp)
sh2.getRange("C"+j).setValue(me)
sh2.getRange("D"+j).setValue(who)
sh2.getRange("E"+j).setValue(mehp)
if(mehp=="6285156911911"){
notif("b01 "+who+"\n@"+hp+"@\n"+me)
exebotwa(me,hp)
return
}
if(mehp=="6285155085519"){
notif("hup "+who+"\n@"+hp+"@\n"+me)
exebotwa30(me,hp)
return
}
if(mehp=="6285216955191"){
notif("b02 "+who+"\n#"+hp+"#\n"+me)
exebotwa2(me,hp)
return
}
}//////
if(typ=="image"){
var id = dx['entry'][0]['changes'][0]['value']['messages'][0]['image']['id']
sh2.getRange("A"+j).setValue(id)
sh2.getRange("B"+j).setValue(hp)
var cpt = dx['entry'][0]['changes'][0]['value']['messages'][0]['image']['caption']
if(cpt==undefined){ cpt = "nocaption"}
sh2.getRange("C"+j).setValue(cpt)
notif("@"+hp+"@\n"+id+" "+cpt)
imarece(hp,id,cpt)
return
}
} catch(err) { console.log("do-nothing") }
///////////////////////////////////////////////
}///end dopost
kirim gambar (dari link)
function goima2(num,pho){
var sss = SpreadsheetApp.openById('1sWwME-6B5qEoElQIcc02aVkKxfQ9yVqEy9xW769xKb#Q#########'); //google-sheet
var sh2 = sss.getSheetByName('Sheet2');
var bx = sh2.getRange("A17").getValue() //ambil token
var lx = "https://raw.githubusercontent.com/macancrew/cmdx4/main/"+pho //lokasi gambar
var tee = {
"link": lx,
"caption": pho
}
var da = {
"messaging_product":"whatsapp",
"recipient_type": "individual",
"to": num,
"type" : "image",
"image": JSON.stringify(tee)
}
var hdx = {"Authorization" : "Bearer "+bx, "Content-Type": "application/json",}
var url1 = "https://graph.facebook.com/v15.0/104791942530752/messages" //phone id
var spost =
{
"method" : "POST",
"muteHttpExceptions": true,
"headers" : hdx,
"payload" : da,
};
UrlFetchApp.fetch(url1, spost);
}////////////////////////////////////
Mark Messages as Read
function readxx(mee,idx){
var sss = SpreadsheetApp.openById('1sWwME-6B5qEoElQIcc02aVkxxxxx'); //bear-lok
var sh2 = sss.getSheetByName('Sheet2');
var bx = sh2.getRange("A17").getValue()
var da = {
"messaging_product":"whatsapp",
"status": "read",
"message_id": mee
}
var hdx = {"Authorization" : "Bearer "+bx}
var url1 = "https://graph.facebook.com/v15.0/"+idx+"/messages"
var spost =
{
"method" : "POST",
"muteHttpExceptions": true,
"headers" : hdx,
"payload" : da,
};
UrlFetchApp.fetch(url1, spost);
}////
kirim gambar
function bacaf09(mess,pic){
var sm = SpreadsheetApp.openById('1z2Qe4xxxxxxxxx').getSheetByName('Sheet1');
var bxx = sm.getRange("E16").getValue() //bearer
var akk = sm.getRange("H16").getValue() //id-akun
//mess = mess+"\nCode : "+rax(40)
var hdx = {"Authorization" : "Bearer "+bxx}
var da = {
"url" : pic,
"published" : false
}
var url1 = "https://graph.facebook.com/v15.0/"+akk+"/photos";
var spost =
{
"method" : "POST",
"muteHttpExceptions": true,
"headers" : hdx,
"payload" : da,
};
var res = UrlFetchApp.fetch(url1, spost);
var res = res.getContentText()
//console.log(res)
var js = JSON.parse(res);
var idg = js['id']
console.log("idg ok : "+idg)
//return
if(idg==undefined){ console.log("idg null"); return; }
var da0 = {
"media_fbid": idg
}
var da = {
"message" : mess,
"attached_media[0]": JSON.stringify(da0)
}
var url1 = "https://graph.facebook.com/v15.0/"+akk+"/feed";
var spost =
{
"method" : "POST",
"muteHttpExceptions": true,
"headers" : hdx,
"payload" : da,
};
var res = UrlFetchApp.fetch(url1, spost);
var res = res.getContentText()
var js = JSON.parse(res);
var lx = js['id']
console.log(lx)
}////end-bacaf09///////////////////