Pada kesempatan kali ini Saya akan memberikan sebuah kode PHP yang berfungsi untuk menambahkan posting secara otomatis ke blog MyWapBlog.
Kedengarannya memang sudah biasa, banyak rekan waper kita yang sudah membagikan trik ini, tapi kebanyakan trik yang dia buat tidaklah otomatis seperti klass PHP yang saya buat ini.
PHP Class ini akan menerbitkan postingan secara otomatis, namun walaupun demikian jika  penggunaannya terlalu berlebihan maka kode ini tidak bisa memposting. Seperti yang kita ketahui bahwa MyWapBlog akan memberikan verifikasi kode kemanan jika penggunanya terlalu banyak posting dalam suatu waktu, jadi jika ingin menggunakan script ini maka gunakannlah dalam jangka waktu 5 menit sekali.

Adapun PHP Class-nya adalah sebagai berikut:

  1. <?php
  2. /**
  3.  * @name    Auto Posting MWB
  4.  * @author  Achunk JealousMan
  5.  * @link    http://facebook.com/achunks
  6.  * @since   28 Nov 2015
  7.  */
  8. class autoPostMwb
  9. {
  10.     protected $login_url =
  11.         'http://www.mywapblog.com/en/login.php?action=login&redir=aHR0cDovL3d3dy5teXdhcGJsb2cuY29tL2VuL3Bvc3QucGhwPw==&lkey=4e5ce687c622baab5b2f818f260a665b';
  12.     protected $post_url = 'http://www.mywapblog.com/en/post.php?';
  13.     protected $error = true;
  14.     public $error_message = '';
  15.     public $cookie_dir;
  16.     public $cookie_file = null;
  17.     public $content;
  18.     public $session_id;
  19.     public $key;
  20.     public $username;
  21.     public $password;
  22.     public $domain_id;
  23.     /**
  24.      * autoPostMwb::__construct()
  25.      *
  26.      * @string          $username
  27.      * @string          $password
  28.      * @integer         $domain_id
  29.      *
  30.      * Pilihan ID Domain:
  31.      * 0 = mywapblog.com
  32.      * 1 = heck.in
  33.      * 2 = pun.bz
  34.      * 3 = faa.im
  35.      * 4 = mwb.im
  36.      * 5 = yu.tl
  37.      * 6 = mwb-id.com
  38.      * 7 = indonesiaz.com
  39.      * @return
  40.      */
  41.     public function __construct($username, $password, $domain_id, $cookie_dir = './')
  42.     {
  43.         $this->username = $username;
  44.         $this->password = base64_encode($password);
  45.         $this->domain_id = $domain_id;
  46.         $this->cookie_dir = $cookie_dir;
  47.     }
  48.     /**
  49.      * autoPostMwb::callMwb()
  50.      *
  51.      * @return
  52.      */
  53.     protected function callMwb($data = array(), $logged_in = false)
  54.     {
  55.         $fields_string = http_build_query($data) . '&';
  56.         if (!$logged_in)
  57.             $url = $this->login_url;
  58.         else
  59.             $url = $this->post_url;
  60.         $ch = curl_init($url);
  61.         if ($this->cookie_file == null)
  62.         {
  63.             $this->cookie_file = $cookie_file = tempnam($this->cookie_dir, "MWB");
  64.             curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
  65.         }
  66.         else
  67.         {
  68.             curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie_file);
  69.         }
  70.         curl_setopt($ch, CURLOPT_REFERER, "http://www.mywapblog.com");
  71.         curl_setopt($ch, CURLOPT_USERAGENT,
  72.             "Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; " .
  73.             "U; en) Presto/2.5.25 Version/10.54");
  74.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  75.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  76.         if (count($data) > 0)
  77.         {
  78.             curl_setopt($ch, CURLOPT_POST, count($data));
  79.             curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
  80.         }
  81.         $request = curl_exec($ch);
  82.         if (!$request)
  83.         {
  84.             $this->error_message = 'CURL ERROR: ' . curl_error($ch);
  85.             curl_close($ch);
  86.             return false;
  87.         }
  88.         curl_close($ch);
  89.         $this->content = $request;
  90.         return true;
  91.     }
  92.     /**
  93.      * autoPostMwb::login()
  94.      *
  95.      * @return
  96.      */
  97.     public function login()
  98.     {
  99.         $data = array(
  100.             'username' => $this->username,
  101.             'password' => $this->password,
  102.             'domain_id' => $this->domain_id,
  103.             'remember' => 'yes',
  104.             'ask_domain_id' => 'true',
  105.             'login' => 'Masuk',
  106.             );
  107.         if (!$this->callMwb($data))
  108.             return false;
  109.         $this->callMwb(array(), true);
  110.         preg_match('/name\=\"PHPSESSID\" value\=\"([a-z0-9]{32})\"/i', $this->content, $matches);
  111.         preg_match('/name\=\"key\" value\=\"([a-z0-9\.]{23})\"/i', $this->content, $matches2);
  112.         if (!$matches || !$matches2)
  113.         {
  114.             $this->error_message = 'Login gagal';
  115.             return false;
  116.         }
  117.         $this->session_id = $matches[1];
  118.         $this->key = $matches2[1];
  119.         $this->error = false;
  120.         return true;
  121.     }
  122.     /**
  123.      * autoPostMwb::post()
  124.      *
  125.      * @string  $title
  126.      * @string  $body
  127.      * @array   $category
  128.      *
  129.      * @return
  130.      */
  131.     public function post($title, $body, $category = null)
  132.     {
  133.         if ($this->error)
  134.             return false;
  135.         $data = array(
  136.             'PHPSESSID' => $this->session_id,
  137.             'key' => $this->key,
  138.             'html_mode' => '1',
  139.             'title' => $title,
  140.             'body' => $body,
  141.             'category' => $category,
  142.             'publish' => 'Publish',
  143.             );
  144.         $this->callMwb($data, true);
  145.         if (strpos($this->content, 'Post published successfully') !== false)
  146.             return true;
  147.         elseif (strpos($this->content, 'Please verify') !== false)
  148.         {
  149.             $this->error_message = 'Verifikasi dibutuhkan';
  150.             return false;
  151.         }
  152.         $this->error_message = 'Posting gagal';
  153.         return false;
  154.     }
  155.     public function deleteCookie()
  156.     {
  157.         if ($this->cookie_file != null)
  158.             @unlink($this->cookie_file);
  159.     }
  160. }
  161. /**
  162.  * $mwb = new autoPostMwb('usernem', 'paspor', 1);
  163.  * if ($mwb->login())
  164.  * {
  165.  *              if ($mwb->post('Judul', 'Teks', array('1423415')))
  166.  *                              echo 'Posting Sukses!';
  167.  *              else
  168.  *                              echo $mwb->error_message;
  169.  * }
  170.  * else
  171.  * {
  172.  *              echo $mwb->error_message;
  173.  * }
  174.  * $mwb->deleteCookie();
  175.  */
  176. ?>


Cara penggunaannya dalah sebgai berikut:

$mwb = new AutoPostMwb('username', 'password', 'domain_id');
//username  : isi dengan nama pengguna akun mwb kamu
//password : isi dengan kata sandi mwb kamu
//domain : masukan ID domain kamu, ini untuk proses login
// Proses Masuk
if (!$mwb->login()) {
echo $mwb->error_message; //Login gagal
} else {
// Proses Memposting
$judul = 'Judul Posting';
$deskripsi = 'Teks';
/**
* Kategori berformat array,
* Isilah kategori dengan ID kategori pada akun Kamu, untuk melihat ID kategori silakan source viewer pada saat memposting
* Contoh 1 kategori: array('12345');
* Contoh lebih dari 1: array('12345','67890')
* Contoh tidak menyertakan kategori: array()
*/
$kategori = array();
$post = $mwb->post($judul, $deskripsi, $kategori);
if ($post) {
echo 'Posting berhasil';
} else {
echo $mwb->error_message;
}
}

Salin atau Download PHP Class diatas di http://pastebin.com/4msBimb5

4 komentar :

  1. cara pasangnya gimana pak

    BalasHapus
    Balasan
    1. maksudnya naruhnya di template atau gimana pak ...

      Hapus

 
Top