Blog Sederhana Seputar Technology, Cheat/Hack, dll

Cara Membuat Auto Reply Mention

Ok guys kali ini gua akan SHARE sedikit TIPS about TWITTER, yakni Cara Membuat Auto Reply Mention, nah yang harus agan punya sih Cumaan OAuth.php sama twitteroauth.php sebagai bumbu dari script ini :) Langsung ke Tutorial!!!
OAuth.php : Here
twitteroauth.php : Here
Kalau udah di DOWNLOAD langsung UPLOAD ke Hosting agan dalam 1 Folder. Nah ini nih menu utamanya

<?php
    /*
    Coded by rieqyns13
    Thanks to all devilzc0de members
    Edited by Shichibukai_ID - JKT48 Cyber Team
    */
    set_time_limit(0);
    class rieqyns13{
        public $api_key;
        public $api_secret;
        public $access_token;
        public $access_token_secret;
        public $simi_type;
        public $file_id;
        public $file_log;
        public $delay;
        public $fls_komen;
        public $post_waktu;
        public $cookie;
        private $user_sender;
        private $user_mention;
        function oauth(){
            require_once("lib/twitteroauth.php");
            $con = new TwitterOAuth($this->api_key, $this->api_secret, $this->access_token, $this->access_token_secret);
            return $con;
        }
        function tweet(){
            $con = $this->oauth();
            $data = $con->get("statuses/mentions_timeline");
            return $data;
        }
        function tweet2(){
            $con = $this->oauth();
            foreach($this->tweet() as $twit){
                if($this->cekId($twit->id_str)==true){
                    $user_mention = explode(" ", $twit->entities->user_mentions[0]->name);
                    $this->user_mention = $user_mention[0];
                    $user_sender = explode(" ", $twit->user->name);
                    $this->user_sender = $user_sender[0];
                 
                    if($this->post_waktu==true) $waktu = $this->waktu();
                    else $waktu = null;
                    if($this->simi_type==true) $data = "@".$twit->user->screen_name." ".$this->simsimi($twit->text).$waktu;
                    else{
                        $msg = $this->match($this->fls_komen);
                        $data = "@".$twit->user->screen_name." ".$msg.$waktu;
                    }
                    echo "[+]Menangkap mention dari @".$twit->user->screen_name.": ".$twit->text."\n";
                    echo "[+]Mencoba membalas: ";
                    $post = $con->post("statuses/update", array("status" => $data, "in_reply_to_status_id" => $twit->id_str));
                    if(!empty($post->text)){
                        $status = "Sukes -> ".$post->text."\n";
                        echo $status;
                        $this->simpan($this->file_log, $status);
                        $this->simpan($this->file_id, $twit->id_str."\n");
                    }elseif(!empty($post->errors[0]->message)){
                        $status = "Gagal -> ".$post->errors[0]->message."\n";
                        $this->simpan($this->file_id, $twit->id_str."\n"); //<<--test
                        echo $status;
                        $this->simpan($this->file_log, $status);
                    }
                }else{
                    continue;
                }
            }
        }
        function waktu(){
            if(function_exists('date_default_timezone_set')) date_default_timezone_set("Asia/Jakarta");
            $hari=date('w');
            $tgl =date('d');
            $bln =date('m');
            $thn =date('Y');
            $jam =date("H:i:s");
            switch($hari){
                case 0 : {$hari='Sunday';}break;
                case 1 : {$hari='Monday';}break;
                case 2 : {$hari='Tuesday';}break;
                case 3 : {$hari='Wednesday';}break;
                case 4 : {$hari='Thursday';}break;
                case 5 : {$hari="Friday";}break;
                case 6 : {$hari='Saturday';}break;
                default: {$hari='UnKnown';}break;
                }
            switch($bln){
                case 1 : {$bln='January';}break;
                case 2 : {$bln='February';}break;
                case 3 : {$bln='March';}break;
                case 4 : {$bln='April';}break;
                case 5 : {$bln='May';}break;
                case 6 : {$bln="June";}break;
                case 7 : {$bln='July';}break;
                case 8 : {$bln='August';}break;
                case 9 : {$bln='September';}break;
                case 10 : {$bln='October';}break;
                case 11 : {$bln='November';}break;
                case 12 : {$bln='December';}break;
                default: {$bln='UnKnown';}break;
            }
            $waktu = "\n[".$hari.", ".$tgl." ".$bln." ".$thn." ".$jam."]";
            return $waktu;
     
        }
        function match($str){
            if(preg_match("#@nama_saya#is", $str)) $str = str_ireplace("@nama_saya", $this->user_mention, $str);
            else $str = $str;
     
            if(preg_match("#@nama_depan#is", $str)) $str = str_ireplace("@nama_depan", $this->user_sender, $str);
            else $str = $str;
         
            return $str;
        }
        function simsimi($str){
            $header = array("Host: www.simsimi.com",
            "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0",
            "Accept: application/json, text/javascript, */*; q=0.01",
            "Accept-Language: id,en-us;q=0.7,en;q=0.3",
            "Accept-Encoding: gzip, deflate",
            "Content-Type: application/json; charset=utf-8",
            "X-Requested-With: XMLHttpRequest",
            "Referer: http://www.simsimi.com/talk.htm",
            "Cookie: ".$this->cookie);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "http://www.simsimi.com/func/reqN?lc=id&ft=0.0&req=".urlencode($str));
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $exec = curl_exec($ch);
            curl_close($ch);
            $dec = json_decode($exec, true);
            if(empty($dec)){
                $msg = $this->fls_komen;
                $simi = $this->match($msg);
                return $simi;
            }else{
                if(!empty($dec['sentence_resp'])){
                    $dat = $dec['sentence_resp'];
                    if(preg_match("/is tired/is", $dat)){
                        $msg = $this->match($this->fls_komen);
                        //$simi=$msg;
                        $simi = $msg.$this->waktu();
                    }else $simi=$dat."\n#BotMaho";
                }else{
                    $msg = $this->fls_komen;
                    $simi = $this->match($msg);
                    //return $simi;
                    $simi = $simi.$this->waktu();
                }
                $preg = preg_replace("/simsimi|simi|.simi|sim/i", " rieqy", $simi);
                return $preg;      
            }
        }
        function simpan($file, $data){
            $fp = fopen($file, "a");
            fwrite($fp, $data);
            fclose($fp);
        }
        function cekId($id){
            if(!file_exists($this->file_id)){
                $this->simpan($this->file_id, "");
            }
            if(file_exists($this->file_id)){
                $file = file($this->file_id);
                $file = str_replace(array("\n", "\r", "\r\n"), "", $file);
                $file = array_unique($file);
                if(in_array($id, $file)==true){
                    return false;
                }else{
                    return true;
                }
            }
        }
    }
    $bot = new rieqyns13;
    $bot->cookie=" COOKIENYA CARI SENDIRI :v";
    $bot->api_key="*********";
    $bot->api_secret="*************";
    $bot->access_token="***************";
    $bot->access_token_secret="*********";
    $bot->file_id = "mention_id.log";
    $bot->file_log = "mention.log";
    $bot->simi_type = true; //TRUE jika ingin menggunakan api simsimi untuk reply mentions, FALSEE jika ingin membalas mention dengan pesan sendiri di $bot->fls_komen;
    $bot->fls_komen = "Maaf @nama_depan, om @nama_saya lagi off, jadi yg bales robotnya , #ErzaJR_";
    $bot->post_waktu = false;
    $bot->delay = 1;
    $bot->tweet2();
    ?>

Oh iya untuk

$bot->api_key="*********";
$bot->api_secret="*************";
$bot->access_token="***************";
$bot->access_token_secret="*********";

Buat disini => HERE

NOTE : Jangan lupa buat file txt dulu yaitu mention_id.log dan mention.log , terus tinggal atur cron job (bisa di google drive)
Selesai deh untuk Cara Masang Auto Reply :)
Tag : Script, Tips, Twitter

Related Post:

4 Komentar untuk "Cara Membuat Auto Reply Mention"

Back To Top -->