Membuat Script Update Status TWITTER via SMS

Sharing is caring!

Artikel ini merupakan kelanjutan dari artikel sebelumnya tentang membuat script PHP untuk update Twitter. Dalam artikel tersebut, sudah saya berikan penjelasan bagaimana membuat function untuk update status Twitter dengan PHP. Nah… selanjutnya, kita akan kembangkan script tersebut dengan mengintegrasikannya bersama SMS Gateway, dalam hal ini Gammu. Harapannya, kita bisa update status Twitter hanya dengan mengirim SMS dalam format tertentu ke SMS center Gammu nya.

Menarik bukan??? 🙂

OK, langkah pertama kita harus menentukan format SMS yang akan dikirimkan ke SMS centernya, misalkan: TWITTER#ISISTATUS

Dalam format di atas, terdapat 2 parameter yaitu TWITTER yang berfungsi sebagai keywordnya, dan juga ISISTATUS yang merupakan isi status updatenya. Sedangkan antara parameter pertama dan kedua dipisahkan dengan tanda #.

Selanjutnya untuk scriptnya nanti yang akan dibuat, pastikan memuat prosedur untuk melakukan proses parsing untuk semua SMS yang diterima oleh SMS center. Parsing ini harus dilakukan untuk mendapatkan nilai parameter-parameter tersebut, jika jumlah parameternya kurang dari 2 atau lebih dari 2, maka format SMS nya salah. Sedangkan jika parameternya berjumlah 2 dan parameter pertama berisi TWITTER, maka format SMS benar dan selanjutnya lakukan proses update status Twitternya.

Seperti halnya dalam artikel-artikel cara membuat auto reply SMS dengan Gammu yang lain, maka untuk script update status Twitter ini kita masih menggunakan AJAX, meskipun ini hanya salah satu cara saja.

Sekarang kita coba buat script PHP untuk membaca SMS yang masuk di Inbox Gammu lalu memprosesnya dengan ide di atas.

update-twitter.php


<?php

// koneksi ke database Gammu
$dbhost = 'localhost';
$dbuser = '...';
$dbpass = '...';
$dbname = '...';
mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

// membaca INBOX Gammu
$query = "SELECT * FROM inbox WHERE Processed = 'false'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
$id = $data&#91;'ID'&#93;;
$sms = $data&#91;'TextDecoded'&#93;;
$sender = $data&#91;'SenderNumber'&#93;;

// proses parsing SMS berdasarkan karakter #
$parse = explode('#', $sms);

// jika jumlah parameter hasil parsing adalah 2
if (count($parse) == 2)
{
   // baca keyword hasil parsing
   $keyword = strtoupper($parse&#91;0&#93;);
   // baca status hasil parsing
   $status = $parse&#91;1&#93;; 
   // jika keyword adalah 'TWITTER' maka jalankan proses update status
   if ($keyword == 'TWITTER')
   {
       include 'twitter.php';
       $twitter = new Twitter('<consumer-key>', '<consumer-secret>');
       $twitter->setOAuthToken('<access-token>');
       $twitter->setOAuthTokenSecret('<access-token-secret>');
       $twitter->statusesUpdate($status);
       $reply = 'Update status Twitter sukses';
   } 
   else $reply = 'Keyword salah';
}
else $reply = 'Format SMS Salah';

// menandai SMS di INBOX Gammu bahwa sudah diproses
$query = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
mysql_query($query);

// mengirim pesan SMS balasan ke nomor pengirim
$query = "INSERT INTO outbox(DestinationNumber, TextDecoded, CreatorID)
          VALUES ('$sender', '$reply', 'Gammu')";
mysql_query($query);
?>

Keterangan:

  • Pastikan Anda sudah mendownload script twitter.php dan meletakkannya di dalam folder yang sama dengan script di atas.
  • Isikan <consumer-key>, <consumer-secret>, <access-token> dan <access-token-secret> pada bagian yang sudah ditentukan di atas. Untuk keterangan lebih detil, silakan pelajari lagi artikel sebelumnya.

Nah… script untuk memproses SMS yang masuk kemudian mengupdate status Twitter sudah dibuat, selanjutnya kita buat script AJAX supaya script di atas bisa berjalan terus menerus di SMS center nya. Kurang lebih, script AJAX nya seperti di bawah ini.

index.html

<html>
   <head>
   <script type="text/javascript">
       function proses()
       {
            if (window.XMLHttpRequest)
            {
               xmlhttp=new XMLHttpRequest();
            }
            else
            {
               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
	
            xmlhttp.onreadystatechange=function()
            {
               if (xmlhttp.readyState==4 && xmlhttp.status==200)
               {
               }
            }
	
            xmlhttp.open("GET","update-twitter.php");
            xmlhttp.send();
            setTimeout("proses()", 5000);
       }	
    </head>
    <body onload="proses();">
        <h1>SMS Center Twitter</h1>
    </body>
</html>

Keterangan:
Script AJAX di atas senantiasa akan menjalankan script update-twitter.php setiap interval 5 detik (5000 ms), perhatikan setTimeout("proses()", 5000); Jika dalam setiap interval 5 detik itu ada SMS yang masuk ke INBOX dan memuat keyword TWITTER maka akan langsung melakukan update Twitter nya.

Script yang perlu Anda jalankan dibrowser hanyalah index.html saja, sedangkan untuk script update-twitter.php tidak perlu dibuka di browser karena sudah otomatis dijalankan oleh AJAX yang ada di index.html tadi.

OK… selamat mencoba ya, and… selamat menge-twit via SMS 🙂

Oya.. script di atas belum saya coba sih.. tapi harusnya bisa jalan, soalnya coding nya langsung di blog ini, tanpa trial dulu.

Tinggalkan Komentar