Satu lagi persembahan artikel dari saya bagi para pecinta SMS Gateway di blog ini.
Kali ini tentang bagaimana cara membuat SMS broadcast jika ada artikel
terbaru pada blog Anda. BTW… ide ini muncul tadi malam setelah saya
bangun tidur
Nah… Barangkali teknik ini bisa dijadikan salah satu teknik marketing
untuk memperkenalkan blog Anda, atau mendatangkan traffic. Melalui SMS
yang dikirimkan, diharapkan pengunjung setia blog Anda akan merasa
senang karena mendapat notifikasi atau pemberitahuan setiap kali ada
artikel baru di blog Anda.
Lantas isi dari SMS notifikasi yang dibroadcast kepada pengunjung blog tersebut apa ya?
Ya… untuk SMS notifikasi yang dikirimkan isinya cukup dengan
menampilkan judul atau title artikel terbaru tersebut dan juga URL link
menuju ke artikel tersebut. Apakah URL link dalam SMS tersebut apakah
bisa diklik?? Hmmm… untuk beberapa jenis hp-hp saat ini yang canggih,
link URL tersebut bisa diklik dan langsung membuka browser menuju link
tersebut.
Oya, untuk lebih menarik hati pengunjung blog Anda, mungkin bisa Anda tambahkan kata sapaan, misalnya: “Hallo [nama], ada artikel terbaru lho di blog, judulnya [judul], URL nya [URL]“.
Nah… pada artikel kali ini saya akan mencoba memaparkan cara membuat layanan SMS auto broadcast tersebut.
Untuk membuat auto broadcast SMS ini, kita membutuhkan software untuk
SMS gateway yang berfungsi untuk melakukan proses pengiriman otomatis
dari server melalui hp/modem. Di sini kita akan menggunakan Gammu sebagai software SMS gateway nya.
Ide dasar pembuatan layanan ini adalah, pertama kita baca dahulu RSS
Feed dari blog. Oya, pembahasan di sini hanya untuk blog WordPress saja.
Untuk blog yang lain silakan menyesuaikan formatnya. Untuk RSS feed
dari blog WordPress, biasanya dapat dilihat di http://situsAnda/feed.
Sebagai contoh adalah RSS feed dari blog ini adalah di http://blog.rosihanari.net/feed. Jika Anda lihat source dari RSS feed nya, maka akan memiliki format sebagai berikut
01.
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02.
<
rss
version
=
"2.0"
>
03.
<
channel
>
04.
<
title
>...title
>
05.
<
link
>...link
>
06.
<
description
>...description
>
07.
08.
<
item
>
09.
<
title
>...title
>
10.
<
link
>...link
>
11.
<
pubDate
>...pubDate
>
12.
<
guid
>...guid
>
13.
<
description
>description
>
14.
.
15.
.
16.
item
>
17.
18.
<
item
>
19.
<
title
>...title
>
20.
<
link
>...link
>
21.
<
pubDate
>...pubDate
>
22.
<
guid
>...guid
>
23.
<
description
>description
>
24.
.
25.
.
26.
item
>
27.
.
28.
.
29.
channel
>
30.
rss
>
Dari format RSS Feed di atas, data informasi artikel diapit oleh tag - ...
. Sedangkan artikel yang paling terakhir dipublish (terbaru) terletak pada - ..
paling atas. Jika kita perhatikan, di dalam tag - ...
terdapat tag lagi yaitu ...
yang menyatakan title artikel, ...
untuk menampilkan link URL permalink artikelnya, ...
berisi informasi tanggal publikasi, ...
berisi URL link asli artikelnya non permalink. Dalam link guid ini terdapat nomor ID artikelnya. Sedangkan tag ...
berisi excerpt atau cuplikan artikel.
Dalam SMS broadcast ini, informasi feed yang hanya diambil misalkan hanyalah ID artikel yang berasal dari tag ...
, title yang diambil dari ...
dan juga URL link. Untuk link URL akan diambil dari ...
saja karena biasanya link URL dari ...
bentuknya panjang sekali sehingga bisa menyebabkan long sms dan biayanya pengiriman sms nya jadi mahal
Data RSS feed artikel yang nantinya kita baca hanyalah artikel yang
terletak pada - …
pertama saja (artikel terbaru).
Setelah RSS feed dibaca kemudian lakukan pengiriman broadcast ke semua
nomor hp. Oya, sebelumnya Anda harus sudah memiliki data nomor hp dan
juga nama pemiliknya untuk sapaan pada SMS notifikasi.
Script tersebut harus dijalankan terus menerus, sehingga begitu ada
artikel terbaru maka secara otomatis akan mengirim SMS notifikasi. Anda
dapat menggunakan AJAX untuk menjalankan script baca RSS feed dan
mengirimkan SMS secara terus menerus.
Mudah kan konsepnya??? Eit.. tapi tunggu dulu, dengan konsep tersebut
tentunya SMS yang dikirim akan berulang-ulang meskipun belum ada
artikel terbaru. Atau dengan kata lain, seseorang akan mendapat SMS
notifikasi yang sama, selama belum ada artikel yang terbaru lagi karena
script tersebut dijalankan secara berulang-ulang. Nah… untuk
mengantisipasi hal tersebut kita harus cari cara supaya tidak terjadi
pengiriman SMS notifikasi yang sama selama belum ada artikel terbaru.
Adapun idenya adalah setiap kali kita membaca RSS feed, kita baca pula
ID artikel yang dibaca dari ...
kemudian kita masukkan ke database. Di dalam database, field untuk
menyimpan ID artikel ini kita buat PRIMARY KEY sehingga tidak bisa
menyimpan ID yang sama berulang kali. Proses memasukkan data ID artikel
ini akan gagal jika sudah terdapat ID artikel yang sama sebelumnya di
dalam tabel database. Nah… sifat PRIMARY KEY dari field tersebut kita
manfaatkan untuk mencegah pengiriman SMS berulang. Proses pengiriman
baru akan dilakukan jika proses penyimpanan ID artikel ke tabel sukses
atau dengan kata lain artikel dengan ID tersebut belum pernah dikirim
sebelumnya. OK itu idenya.
Sekarang kita mulai saja proses pembuatan scriptnya. Pertama, kita
siapkan dulu tabel phonebook yang digunakan untuk menyimpan data nomor
HP dan juga nama yang nantinya akan dikirimi SMS notifikasi.
1.
CREATE
TABLE
`phonebook` (
2.
`nohp`
varchar
(20),
3.
`nama`
varchar
(30)
4.
);
dan juga tabel listartikel untuk menyimpan ID artikel.
1.
CREATE
TABLE
`listartikel` (
2.
`id`
int
(11),
3.
PRIMARY
KEY
(`id`)
4.
);
Kedua tabel itu dapat diletakkan dalam database yang sama dengan gammu nya, bersama tabel INBOX, OUTBOX, SENTITEMS dll.
Selanjutnya, kita buat script untuk proses pembacaan RSS Feed dan
juga pengiriman SMS notifikasi secara broadcast ke semua nomor HP yang
ada di tabel ‘phonebook’
sms.php
01.
02.
// koneksi ke database gammu
03.
mysql_connect(
"dbhost"
,
"dbuser"
,
"dbpass"
);
04.
mysql_select_db(
"dbname"
);
05.
06.
// membaca semua data RSS feed dari blog
07.
$dataxml
= simplexml_load_file(
'http://blog.rosihanari.net/feed'
);
08.
09.
// counter
10.
$count
= 1;
11.
12.
// proses parsing data XML dari RSS feed
13.
// data yang dibaca hanya di dalam tag - ...
14.
foreach
(
$dataxml
->channel->item
as
$artikel
)
15.
{
16.
// data yang dibaca hanya data pertama
17.
if
(
$count
== 1)
18.
{
19.
// baca title artikel
20.
$title
=
$artikel
->title;
21.
// baca guid artikel
22.
$guid
=
$artikel
->guid;
23.
24.
// proses mengambil ID artikel dari guid
25.
// ID artikel terletak pada link guid berbentuk http://situsAnda/?p=ID
26.
$pecah
=
explode
(
"?p="
,
$guid
);
27.
$idArtikel
=
$pecah
[1];
28.
29.
// proses insert data ID artikel ke tabel listartikel
30.
$query
=
"INSERT INTO listartikel VALUES ('$idArtikel')"
;
31.
$hasil
= mysql_query(
$query
);
32.
if
(
$hasil
)
33.
{
34.
// jika proses insert ID artikel sukses maka lakukan kirim SMS
35.
36.
// baca data nama dan nohp dari phonebook
37.
$query2
=
"SELECT * FROM phonebook"
;
38.
$hasil2
= mysql_query(
$query2
);
39.
while
(
$data2
= mysql_fetch_array(
$hasil2
))
40.
{
41.
$nohp
=
$data2
[
'noHP'
];
42.
$nama
=
$data2
[
'nama'
];
43.
44.
// format SMS notifikasi
45.
$isiSMS
=
"Hai "
.
$nama
.
", ada artikel baru nih \""
.
$title
.
"\". URLnya ada di "
.
$guid
;
46.
47.
// kirim SMS notifikasi
48.
$query3
=
"INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES ('$nohp', '$isiSMS', 'Gammu')"
;
49.
mysql_query(
$query3
);
50.
}
51.
}
52.
}
53.
// counter
54.
$count
++;
55.
}
56.
57.
?>
Berikutnya, kita buat script AJAX untuk menjalankan script sms.php di
atas secara terus menerus setiap interval tertentu. Di sini saya
contohkan menjalankan script sms.php dalam setiap interval 10 menit
(600.000 mili sekon).
index.php
01.
02.
03.
21.
22.
23.
"ajax()"
>
24.
SMS Server running...
25.
26.
Nah… mudah bukan membuatnya? silakan mencoba ya…. Script di atas dicoba dengan sukses menggunakan modem Wavecom dan Gammu 1.25.
EmoticonEmoticon