Rabu, 11 April 2012

Membuat Script Update Status TWITTER via SMS

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.

aka 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

<pre class="prettyprint lang-html">

<?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['ID'];
$sms = $data['TextDecoded'];
$sender = $data['SenderNumber'];

// 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[0]);
   // baca status hasil parsing
   $status = $parse[1];
   // 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);
?>

</pre>

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
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
<pre class="prettyprint lang-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 &amp;amp;&amp;amp; 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>

</pre> 



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

0 komentar:

Posting Komentar

◄ Posting Baru Posting Lama ►
 

Chat YM

Administrator
Status YM

Copyright © 2013. Rorik Setya Budi - All Rights Reserved