CSS

Wednesday, June 12, 2013

Bikin Notif Pengunjung ala Facebook diBlog (versi Google Script)

Udah gak usah dijelasin lagi kali kayanya ya, noh tuh kan contonya (kalo masih) ada dipojok kiri bawah.

Dulu di Blog yang lama juga udah pernah dishare scriptnya kalo gak salah, tapi emang yang itu DataBase untuk penyimpanan data pengunjung-nya masih pake Feed dari Facebook Page, nah kalo yang sekarang udah dipindah pake ScriptDB-nya Google Script.

Sebenernya kalo dibilang beda juga gak jauh-jauh amat kayanya, antara nyimpen sama ngambil datanya juga tetep pake API, cuman emang kalo ScriptDB-nya Google Script gak butuh Access_token, tapi kalo soal privacy data sih tetep aja public open; semua orang bisa access read/write.

Ada beberapa yang masih jadi ganjelan dari Blog Notif yang sekarang ini:
  • Apakah ada/Berapa limit penyimpanan dari ScriptDB ini.
  • Masih suka kepentok masalah Limit Eksekusi Script, jadi kalo pengunjung blognya rame, butuh lebih dari satu ScriptDB.
  • Belum ketemu gimana caranya biar write access ke-ScriptDB hanya bisa dari satu subdomain saja.
Karena disini bukan forum copy-paste, jadi mending kita bahas ditelnya dulu okeh?
udah, okeh aja,, daripada gak dibagi :P

ScriptDb

ScriptDb is a JavaScript Object database for Google Apps Script.

Saving Data

function saveToDB(){
  var db=ScriptDb.getMyDb();
  var whatToSave={
    visitor:{
      id:"4",
      name:"Zuck",
      page_title:"AingCreations",
      page_uri:"http://aingcreations-reborn.blogspot.com/",
      action:"viewed",
      browser:"Firefox 10",
      time:"2013-05-20T17:11:45+0000"
    }
  };
  db.save(whatToSave);
}

Collecting Data

function collectDB(){
  var visitors=[];
  var count=0;
  var limiting=5;

  var db=ScriptDb.getMyDb();
  var whatToCollect={visitor:db.anyValue()};
  var searchOnDB=db.query(whatToCollect);
  while(searchOnDB.hasNext()){
    var fromDB=searchOnDB.next();
    visitors.push(fromDB.visitor);
    count++;
    if(count==limiting){break}
  }

  var Lol="\nFound: "+visitors.length+" Visitors\n"+JSON.stringify(visitors,null,"  ");
  Logger.log(Lol);
}

Modifying Data

function modifDB(){
  var db=ScriptDb.getMyDb();
  var whatToModify={visitor:{id:"4"}};
  var modifPart={
    partName:"time",
    partVal:"2013-06-10T00:00:00+0000"
  }
  var searchOnDB=db.query(whatToModify);
  while(searchOnDB.hasNext()){
    var whatToSave=searchOnDB.next();
    whatToSave.visitor[modifPart.partName]=modifPart.partVal;
    db.save(whatToSave);
  }
}

Deleting Data

function dellDB(){
  var db=ScriptDb.getMyDb();
  var whatToDell={visitor:{id:"4"}};
  var searchOnDB=db.query(whatToDell);
  while(searchOnDB.hasNext()){
    db.remove(searchOnDB.next());
  }
}

ContentService

When a script is published as a web app, the special callback functions doGet() and doPost() are invoked whenever a request is made to the script's URL. The ContentService can be used to return raw textual content. This allows you to write scripts that act as services, responding to GET and POST requests and serving data of various mime-types.

Codes at Google Script

Publishing as a Web App

Testing

Getting visitor facebook ID

The important thing about this Blog Notif is visitor facebook ID. We can get this ID by connecting our blog to facebook or better known as Facebook Connect.

I'm not writing yet about this, but you may still learn it from http://developers.facebook.com/ or you may analyze this blog source script if you want :)

By knowing our visitor facebook ID, then we can fetch more information about our visitor from facebook, such as their profile photo, locale language, gender etc.

Tester HTML File

To learn more about how the script flows, Download this BlogNotifTester.htm file, open/drag and drop into browser new tab, use browser console to monitor the script flow.

~ Have a good day :)

62 comments:

Unknown said...

pertamax :p :D

pelangi senja said...

nah gue banget ini yang gue maling gak ketemu2 ..takzz kang irland



paling cetar membahana badai halilintar dah

pelangi senja said...
This comment has been removed by the author.
Mella said...

itu maksuntya scripnya ditaruh di html attau mana kang

Unknown said...

teu jalan wae ahh

Ahmad ulil amin said...

kumaha scripnya mana

Unknown said...

kang kalo yang di JS blog aing yang di ubah apanya ?
yang ini kan ?
dbUrls:[
"https://script.google.com/macros/s/AKfycbyuvCQpx3JqKFttIiWpuYV_K8Ey_FIYdRPz0_pen5MO5ZDCUaI/exec",
"https://script.google.com/macros/s/AKfycbwjzwgEZlabUXwOHrvqVNpji9I8Vv-8DROrCH4F_X78rgSBmJ-P/exec",
"https://script.google.com/macros/s/AKfycbztxXzd_dPj5vldzuQbHb9VJCILAtAKAaK1FVupRuNzpo97o1U/exec",
"https://script.google.com/macros/s/AKfycby3Xnf-LYF-UbS_8N3tb5FMzc5lpuzYNI3wKDrg6C6kDeMlMZU/exec"
],
dbUrl:"https://script.google.com/macros/s/AKfycbyuvCQpx3JqKFttIiWpuYV_K8Ey_FIYdRPz0_pen5MO5ZDCUaI/exec"
terus ngambil https://script.google.com/macros/s/AKfycbyuvCQpx3JqKFttIiWpuYV_K8Ey_FIYdRPz0_pen5MO5ZDCUaI/exec
linknya itu biar bisa saving data gimana ?
bingung ??

Unknown said...

kang ningan teu jalan wae T.T

Unknown said...

dbUrl na tos di ganti.
tapi teu muncul wae

Unknown said...

Biar lebih ngerti soal cara kerja script ini, Download file BlogNotifTester.htm ini, open/drag and drop into browser new tab, use browser console to monitor the script flow.

~ Have a good day :)

Unknown said...

masih belum paham :-D

Unknown said...

scriptnya beda sama yang punya akang di pojok jadi pantes kalau di simpen di JS aing-creations dbUrl nya. gabakan jalan (kata ane)
tappi kalau di simpen di postingan kayak di atas jalan :-D

Pusing

Unknown said...

gk ngerti banget..
DbURl udh di ubah, terus yang "https://script.google.com/macros/s/AKfycbwjzwgEZlabUXwOHrvqVNpji9I8Vv-8DROrCH4F_X78rgSBmJ-P/exec",
"https://script.google.com/macros/s/AKfycbztxXzd_dPj5vldzuQbHb9VJCILAtAKAaK1FVupRuNzpo97o1U/exec",
"https://script.google.com/macros/s/AKfycby3Xnf-LYF-UbS_8N3tb5FMzc5lpuzYNI3wKDrg6C6kDeMlMZU/exec"


^^^
itu buat apa ?? fungsinya buat apa ??
??????
Bingung

Unknown said...

CFx buat serep apan di atas udah di jelasin kalau pengunjungnya rame harus lebih dari satu script (mungkin)

Anonymous said...

Aing Uwi Bener tapi Gak PeDe :P

Unknown said...

hehe.
terus kumaha atuh teu jalan wae :/

Unknown said...

ohh buat serep toohh,, kirain tapi kalo di klik kok beda hasilnya ??
:/ :/ :/
yang 1 {"count":0,"data":[]}
yang 1 {"count":1,"data":[{"id":"100005026206828","page_uri":"http://aingcreations-reborn.blogspot.com/2013/06/bikin-notif-pengunjung-ala-facebook_12.html","time":"2013-06-15T22:58:15+0700","action":"viewed","brwsr":"Chrome 27","page_title":"Bikin Notif Pengunjung ala Facebook diBlog (versi Google Script) | AingCreations"}]}
????

Unknown said...

kan kata ane juga script yang di share di postingan ini beda sama yang di pake di pojok

Unknown said...

ohh Beda tohh :/

Unknown said...

Iya.
coba aja copas postingan ini pake page source terus ganti dbUrl nya pasti jalan.
tapi kalau di simpen di JS aing-creations ga jalan

Unknown said...

tes ahh :)

Unknown said...

http://wis4nto.blogspot.com/2013/06/blog-notification-terbaru.html

tuh w juga jalan

Unknown said...

invite kang ke blognya, saya ilham :) :)

Anonymous said...

coba aja download dulu file htm yg buat ngetes di atas tuh
terus ganti dbUrls nya pake punya sendiri
terus masukin manual visitornya lewat form yang di pojok kanan bawah
terus liat jalan gak

liat di source file tadi ada function aing.posIpeun
liat variablenya kan pada beda sama source code js aing emang disengaja kale :P
var j={simpan:"euy",id:aing.idUserYgLogin,brwsr:aing.userBrowser,page:aing.dataNotip.pgUrl,title:i,type:aing.posipeuntype}

Unknown said...

Udah jalan kalau lewat htm

oke lah di coba kang febrie :-D

Unknown said...

Au ah pusiing :-D
Gimana ilham notif ini udah jalan belum ?

Ali Hadi Rafsanjani said...

Teu ngarti kang

Anonymous said...

wkwkwkk... CuMuNGuuuuttt kaKa².. XD

Unknown said...

share atuh kang :'(

҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄ҳ-c(^3 -ҳ҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄ said...

gimana nih kang ? :v
masih bingung aku :3

҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄ҳ-c(^3 -ҳ҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄҃҄҅҆҅҄҃҄҅҆҅҄҃҄ said...

thisUri:"https://script.google.com/macros/s/AKfycbxIp8fOrlFt9576_d3V1jTpVb9wkLUpKlAu8tpxWeEomVIO69L8/exec",
ini diganti? dengan yang di 'deploy' barusan? :/

Unknown said...

belum jalan juga kang :/ :/
hadehh pusing,, mungkin karna gk ada visitornya yaa

matahari said...

di test jalan di pasng og gak jalan dapuqqq

Anonymous said...

Monday, June 24 2013
Title Bar "Connecting.."
Status Bar "Waiting for script.google.com.."

Apakah fitur ContentServise Google Script akan Deprecated seperti pasilitas upload google code?

nya,,, ceuk aing oge ulah di Share :P jadi weh di paehan :D

Unknown said...

hahah karunya teuing

Anonymous said...

kang baheula mah saencan log.in teh aya foto budak ngelel :P ayeunamah teu aya.
Terus log.in with facebook na teu jalan deuih didieu mah :/

Unknown said...

ada videonya ngga ?

dw1 said...

kang Irland nya lagi ngorok, jgn di ganggu :v
Kang Irland tambah pro nih :3 #culam :v

badak™ said...

heem.. low ada video nya pasti lebih greget nih..
manual kyk gni kyk nya buntu.. mana yg mesti di edit..

dw1 said...

ngapain pake video ? ini kan udah dijelasin secara detil =))

dw1 said...

di test jalan di pasang gak jalan ?

kan kalo test cuman demo doang, klo di pasang beda lagi scriptnya =)) coba piw-srok page ini cari id="pos-bodi-notip" sama id="pisitor-bracket", sedangkan kalo yg di demo .header-inner .titlewrapper sama id="pisitor-counter", sedangkan di blog aing ngeLoad postScript

dw1 said...

kalo yg didemo kan ngeLoad nya aing.bikinNotip

badak™ said...

low db aing, notif nya low di load di blog.. weh lancar kyk jalan tol notif nya.. nah pas di ganti pke db sendiri cm ganti url db nya dowang.. eh malah diem seribu bhasa neh notif.. :/

yach.. kembali ke asal aja dah.. pke page

matahari said...

masih penasaran uey,,anu ini mah
masamasukinnya manual tapi kalau di pasng yang masuk cuma orang2 yang di test tadi doang haaha
otak atik trus ampe jeboll

nah kalau copas yang di postingan ini bisa jalan di selipin di postingan,,tp masa sih setiap pposting harus di kasihh notip masing2 kwkwkwkwkwkw

matahari said...

https://script.google.com/macros/s/AKfycbwL-297gdjGRPyh3hCgP6-qTXcT_lmtFZiUjlBSrDAF2R375uo/exec?ambil=euy

pelangi senja said...

}
a={count:visitors.length,data:visitors};
}else{
a={error:"https://script.google.com/macros/s/AKfycbyQIGjF6qu7w2n9DKlyLxylRMaaxS0ad341SKConY1GB96k424r/exec?simpan=euy&id=4&brwsr=Firefox 10&page=http://zona-devil.blogspot.com/&title=ZonaDevil&type=viewed"};
}

}else{
a={error:"https://script.google.com/macros/s/AKfycbyQIGjF6qu7w2n9DKlyLxylRMaaxS0ad341SKConY1GB96k424r/exec?ambil=euy"};
}

}else{
a={error:"https://script.google.com/macros/s/AKfycbyQIGjF6qu7w2n9DKlyLxylRMaaxS0ad341SKConY1GB96k424r/exec?simpan=euy&uyeh=wkwk"};
}


apa udah bener ini kang

Anonymous said...

Nyimmaakk.. kwakwkwk
Salam kang irland.. :*
senggol kang anaz :* :v

Unknown said...

Kang upami tos kieu kumaha ?

http://wis4nto.blogspot.com/

badak™ said...

wah.. etamah mantap kang uwi

dripd ane gatot trs.. ckckk

badak™ said...

masih penasaran nih!!

masak ane bisa nya cuman copy paste :D
acak" trs akh

Unknown said...

Inget Kata kata ini aja deh

Hanya parameter Ambil dan Simpan yang dapat di terima :D

badak™ said...

kyk gni bukan kang..
}else{
a={error:"https://script.google.com/macros/s/AKfycbwq0XErmOCkhGL4dMruHAaWAwwjudKnl5Sq3HUco9vJOHVYECs/exec?simpan=euy&id=100002688678274&brwsr=Firefox 20&page=http://dark--ims.blogspot.com/&title=dark ims&type=viewed"};
}

}else{
a={error:"https://script.google.com/macros/s/AKfycbwq0XErmOCkhGL4dMruHAaWAwwjudKnl5Sq3HUco9vJOHVYECs/exec?simpan=euy&id=4"};
}

}else{
a={error:"https://script.google.com/macros/s/AKfycbwq0XErmOCkhGL4dMruHAaWAwwjudKnl5Sq3HUco9vJOHVYECs/exec?ambil=euy"};
}

tp low di jalankan Dotget nya malah kyk gni hasil nya
(TypeError: Tak dapat membaca properti "parameter" dari undefined.)

Unknown said...

Kang irland maksimal limiting di DB nya berapa ?

Unknown said...

Kok eror parameter nih??
pass udah running Doget
if(e.parameter){
eror

BERAS TERMURAH DAN TERBAIK DI INDONESIA said...

mantab master irland :D

Unknown said...

TypeError: Tak dapat membaca properti "parameter" dari undefined. (baris 10, file "Kode")



eror : if(e.parameter){


gimana si binggung

Unknown said...

funsi doGet itu emang bukan untuk di eksekusi secara manual jadi pasti ada pesan error.

di sini run function doGet itu maksudnya cuman buat confirm permission dari akun google

jadi gak masalah :)

Note:
The doGet function is the one that is run when a user accesses the URL at which the script is deployed.
Notice that doGet takes a parameter, e. This e parameter contains any information that was passed in the URL's query string. For more details, see /guides/ui-service#doGetParams

Unknown said...

Blog Notif Aing, soo whats the Problem??

Unknown said...

Who can access to the app nya kali?
(gambarnya gak jelas lagi ngapain?)

Unknown said...


Teu Jadi Jadi Dah Urang Nyiem DB Teh T^T

Lier... Aya Vidiona Teu?

wasiu said...

Gan masi belom paham ,
cara masang Notif Pengunjung ala Facebook diBlog

Unknown said...

teu ngarti ngarti urang ahk , lieur error wae pas di run teh