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!!!
Oh iya untuk
$bot->api_key="*********";
$bot->api_secret="*************";
$bot->access_token="***************";
$bot->access_token_secret="*********";
OAuth.php : Here
twitteroauth.php : HereKalau 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();
?>
/*
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 :)
4 Komentar untuk "Cara Membuat Auto Reply Mention"
Pak. Kalau auto reply tweetnya orang yang menyebut kata "bantal" lalu diarahkan ke blog saya gitu bisa ya?
nice info sekali nih gan.
asik nih gan. saya sudah praktek
Thansk tutornya gan Konveksi Surabaya
Konveksi Surabaya
Konveksi Surabaya