Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. <?php
  2.  
  3. // settingannya gan
  4.  
  5. $bot = new bot(
  6.     array(
  7.         'email' => '',
  8.         'pass' => '',
  9.         'group_id' => '',
  10.     )
  11. );
  12.  
  13. /*
  14. *
  15. * - Test auto invited friends to group using PHP
  16. *
  17. * - Created by Danz Ze
  18. *
  19. */
  20.  
  21. class bot {
  22.     private $bot;
  23.     function __construct($bot) {
  24.         $this->pass = $bot[pass];
  25.         $this->email = $bot[email];
  26.         $this->gId = $bot[group_id];
  27.     }
  28.  
  29.     public function invited() {
  30.         $friends = $this->getData('me/friends',array('fields' => 'id'));
  31.         for($i=0;$i<count($friends);$i++) {
  32.             $x[] = '"addees['.$friends[$i][id].']":"'. $friends[$i][id].'"';
  33.         }
  34.         $y='{'.implode(',',$x).'}';
  35.         $a=json_decode($y,true);
  36.         $url = $this->getUrl(
  37.             'm',
  38.             'groups/members/search/',
  39.             array(
  40.                 'group_id' => $this->gId,
  41.                 'refid' => '7',
  42.             )
  43.         );
  44.         $cData=$this->_req($url,2);
  45.         $fbDtsg = substr($cData, strpos($cData, 'name="fb_dtsg"'));
  46.         $fbDtsg = substr($fbDtsg, strpos($fbDtsg, 'value=') + 7);
  47.         $fbDtsg = substr($fbDtsg, 0, strpos($fbDtsg, '"'));
  48.         $arr = array(
  49.             'fb_dtsg' => $fbDtsg,
  50.             'group_id' => $this->gId,
  51.         );
  52.         $postFields=array_merge($a,$arr);
  53.         $urlPost=$this->getUrl('m','/a/groups/members/add/');
  54.         $this->_req($urlPost,2,$postFields);
  55.         echo 'true... <br/> '.count($friends).' Friends invited...';
  56.     }
  57.     private function _req($url,$type=null,$fields=null) {
  58.         $opts = array(
  59.         CURLOPT_CONNECTTIMEOUT => 10,
  60.             CURLOPT_RETURNTRANSFER => true,
  61.             CURLOPT_URL => $url,
  62.         );
  63.         $ch=curl_init();
  64.         if($type) {
  65.             if($type == 1) {
  66.                 $opts[CURLOPT_COOKIEJAR] = 'coker_log';
  67.             }
  68.             if($type == 3) {
  69.                 $opts[CURLOPT_HEADER] = true;
  70.             }
  71.             $opts[CURLOPT_COOKIEFILE]='coker_log';
  72.         }
  73.         if($fields) {
  74.             $opts[CURLOPT_POST] = true;
  75.             $opts[CURLOPT_POSTFIELDS] = $fields;
  76.         }
  77.         curl_setopt_array($ch,$opts);
  78.         $result = curl_exec($ch);
  79.         curl_close($ch);
  80.         return $result;
  81.     }
  82.  
  83.     private function getToken() {
  84.         if(file_exists('toketAne')) {
  85.             $fileToken = file('toketAne');
  86.             return $fileToken[0];
  87.         } else {
  88.             return $this->setToken();
  89.         }
  90.     }
  91.     public function setToken() {
  92.         $url = $this->getUrl(
  93.             'touch',
  94.             'connect/uiserver.php',
  95.             array(
  96.                 'app_id' => '350685531728',
  97.                 'redirect_uri' => urlencode('https://facebook.com/connect/login_success.html'),
  98.                 'response_type' => 'token',
  99.                 'perms' => 'publish_stream,offline_access,read_stream,publish_actions',
  100.                 'method' => 'permissions.request',
  101.             )
  102.         );
  103.         $getToken = $this->_req($url,3);
  104.         $cut = explode('token=',$getToken);
  105.         $cuts = explode('&expires',$cut[1]);
  106.         if($cuts[0]) {
  107.         $x=fopen('toketAne','w');
  108.             fwrite($x,$cuts[0]);
  109.             fclose($x);
  110.             return $cuts[0];
  111.         } else {
  112.             echo "<!DOCTYPE html><title>Error</title><b style=\"color:red\">Kesalahan pada login facebook.</b><br/>Klik <a href=\"".$_SERVER[PHP_SELF]."\">disini</a> untuk ulangi lagi.";
  113.             $this -> login();
  114.         }
  115.     }
  116.  
  117.     private function getData($dir,$params=null) {
  118.         $param = array(
  119.             'access_token' => $this->getToken(),
  120.         );
  121.         if($params){
  122.             $arrayParams=array_merge($params,$param);
  123.         } else {
  124.             $arrayParams =$param;
  125.         }
  126.         $url = $this->getUrl('graph',$dir,$arrayParams);
  127.         $result = json_decode($this->_req($url),true);
  128.         if($result[data]) {
  129.             return $result[data];
  130.         } else {
  131.             return $result;
  132.         }
  133.     }
  134.     public function me() {
  135.         return $this->getData('me');
  136.     }
  137.     private function getUrl($domain,$dir,$uri=null) {
  138.         if($uri) {
  139.             foreach($uri as $key =>$value) {
  140.                 $parsing[] = $key . '=' . $value;
  141.             }
  142.             $parse = '?' . implode('&',$parsing);
  143.         }
  144.          return 'https://' . $domain . '.facebook.com/' . $dir . $parse;
  145.     }
  146.     private function login() {
  147.         $login = array(
  148.             'pass' => $this -> pass,
  149.             'email' => $this ->email,
  150.             'login'  => 'Login',
  151.         );
  152.         $url = $this->getUrl('m','login.php');
  153.         $result = $this->_req($url,1,$login);
  154.         if($result) {
  155.             $this->setToken();
  156.         }
  157.     }
  158. }
  159.  
  160. $me = $bot->me();
  161. if($me[id]) {
  162.     $bot->invited();
  163. } else {
  164.     $bot->setToken();
  165. }
  166.  
  167. ?>