You Now Here »

[tutorial PHP] cara membuat script auto post facebook group Graph API OAUTH  (Read 13972 times - 74 votes) 

DANNY

G-Plus Author
  • ADMINISTRATOR
  • More Share Forum Topic
  • [MS] kepala suku
  • *
  • DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!
  • Rep Power: 6
  • Join: September 30, 2009
  • Posts: 11,931
  • Poin: 193.394
    • WWW
  • IP member tracker Logged


  :ehm
FACEBOOK? siapa yang tak kenal dengan social media ternama ini, seperti halnya twitter. facebook pun menjadi urutan teratas social media terbaik saat ini. sebenarnya apa sih keunggulan social media serta manfaatnya?
  • sarana pertemanan
  • sarana penyebaran informasi
  • sarana marketing
  • dan masih banyak lagi manfaatnya

lalu kenapa kita membutuhkan script autopost facebook ini? apakah akan berguna? okelah kalo beg-beg-begitu... beberapa hari lalu ane bereksperiment untuk membuat script ini dan diintegrasikan pada script forum ini, alhasil setiap kali terjadi posting maka topic tersebut akan ter-share secara otomatis ke facebook group kami @moreshare . akhirnya script ini pun mempunyai value yang tinggi diantaranya
  • efisien (tidak perlu manual post, dan tidak membuang waktu)
  • informasi terupdate
  • follower mendapatkan informasi terupdate dari forum ms-room.com ini
  • new liker dan follower pun datang bertubi-tubi untuk mendapatkan informasi dari sini serta membantu meretweet informasi yang bermanfaat
  • kita hanya tinggal memantau, tak perlu repot

gimana? cool kaaaaaaaaaan
:D

oke, berikut scriptnya:
ga perlu repot, ane udah bikin sesimple mungkin ini script, tinggal ganti bagian ini aja
/*************CONFIG***************/
$EMAIL_FACEBOOK = '';
$PASSWORD_FACEBOOK = '';
$MESSAGE_POST = '';
$GROUP_ID = '';
/**********************************/
/**********************************/


Code: [Select]
<?php
/*************CONFIG***************/
$EMAIL_FACEBOOK '';
$PASSWORD_FACEBOOK '';
$MESSAGE_POST '';
$GROUP_ID '';
/**********************************/
/**********************************/

$cURL = new cURL("fbtokengrup");
$cURL->user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36";
$cURL->timeout 0;

$form = array();
$form["email"] = $EMAIL_FACEBOOK;
$form["pass"] = $PASSWORD_FACEBOOK;

$read $cURL->open("https://m.facebook.com/login.php",$form);


$linktokenexplorer "https://developers.facebook.com/tools/explorer/";
$hasillinktokenexplorer $cURL->open($linktokenexplorer);
preg_match_all('/"GraphExplorer","init",\[(.*?)],\[(.*?)"(.*?)"/'$hasillinktokenexplorer$matches);
$token $matches[3][0];

$postgroup = array();
$postgroup["message"] = $MESSAGE_POST;
$postgroup["access_token"] = $token;
$suksespostgroup $cURL->open("https://graph.facebook.com/".$GROUP_ID."/feed/",$postgroup);



##############################
class cURL
{
    var 
$user_agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)";
    var 
$proxy_ip "";
    var 
$proxy_port 0;
    var 
$proxy_url "";
    var 
$proxy_type "";
    var 
$status 0;
    var 
$error "";
    var 
$timeout 30;
    var 
$cookies "";
    var 
$last_url "";
    var 
$fix_cookies false;

    function 
__construct($cookies)
    {
        if (!
$cookies$cookies tempnam("./""CURLCOOKIE");
        
$this->cookies $cookies;
    }

    function 
open($url,$post="") {
        
$ch curl_init();
        if (
$this->proxy_url != ""$url str_replace("%s"str_replace("https://","",$url), $this->proxy_url);
        
curl_setopt($chCURLOPT_URL$url);
        
curl_setopt($chCURLOPT_HEADER0);
        if (
$post != "") {
            
curl_setopt($chCURLOPT_POST,1);
            
curl_setopt($chCURLOPT_POSTFIELDS$post);
        }

        
curl_setopt($chCURLOPT_USERAGENT$this->user_agent);
        
curl_setopt($ch,CURLOPT_TIMEOUT$this->timeout);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($ch,CURLOPT_REFERER$this->last_url);
        
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
        
curl_setopt ($chCURLOPT_COOKIEJAR$this->cookies);
        
curl_setopt ($chCURLOPT_COOKIEFILE$this->cookies);

        if (
$this->proxy_ip != "") {
            
curl_setopt($chCURLOPT_PROXYPORT$this->proxy_port);
            
curl_setopt($chCURLOPT_PROXYTYPE'HTTP');
            
curl_setopt($chCURLOPT_PROXY$this->proxy_ip);
            if (
$this->proxy_type == "socks"curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_SOCKS5);
        }
        
$data curl_exec($ch);
            
$this->status curl_getinfo($ch,CURLINFO_HTTP_CODE);
            
$this->error curl_error($ch);
        
$this->last_url $url;
        
curl_close($ch);
        return 
$data;
    }
}
function 
stringBetween($start$end$var)
{
    return 
preg_match('{' preg_quote($start) . '(.*?)' preg_quote($end) . '}s'$var$m)
    ? 
$m[1]
    : 
'';
}


?>

silakan anda integrasikan dengan database website anda untuk mendapatkan data yang ingin terpost

  :beer:
moga bermanfaat
regards admin MS-ROOM.COM


View Mobile Web Short URL:
« Last Edit: May 03, 2014, 03:37:37 PM by DANNY »

mrOBY

aku nyoba ini ndak berhasil mas..
bagian ini
________________________
       var $proxy_ip = "";
       var $proxy_port = 0;
       var $proxy_url = "";
       var $proxy_type = "";
       var $status = 0;
       var $error = "";
       var $timeout = 30;
       var $cookies = "";
       var $last_url = "";
       var $fix_cookies = false;

__________________________________
itu dibiarin kosong gitu apa diisi mas??
mohon pencerahan nya..
  :sedih

DANNY

G-Plus Author
  • ADMINISTRATOR
  • More Share Forum Topic
  • [MS] kepala suku
  • *
  • DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!
  • Rep Power: 6
  • Join: September 30, 2009
  • Posts: 11,931
  • Poin: 193.394
    • WWW
  • IP member tracker Logged
script masih berjalan lancar ko,
buktinya postingan terbaru diforum ini lancar auto post ke grup moreshare secara otomatis
semua settingan biarin aja default
config hanya dilakukan sesuai yang ane perintahin diatas

untuk pertanyaan ente diatas itu ga ada masalah, itu cuma fungsi untuk akses site FB secara mobile dengan random IP dan menyimpan cookies ke server ente. jangan lupa gunakan htaccess untuk memblock file cookies nya agar tidak bisa dilihat orang

btw ga working nya dimana nya yah?
mungkin bisa kasih screen shot errornya
:beer:
« Last Edit: June 12, 2012, 02:37:07 PM by DANNY »

mrOBY

script masih berjalan lancar ko,
buktinya postingan terbaru diforum ini lancar auto post ke grup moreshare secara otomatis
semua settingan biarin aja default
config hanya dilakukan sesuai yang ane perintahin diatas

untuk pertanyaan ente diatas itu ga ada masalah, itu cuma fungsi untuk akses site FB secara mobile dengan random IP dan menyimpan cookies ke server ente. jangan lupa gunakan htaccess untuk memblock file cookies nya agar tidak bisa dilihat orang

btw ga working nya dimana nya yah?
mungkin bisa kasih screen shot errornya
:beer:


report error sih gak ada sob..
cuman pas script yang agan itu dengan setingan yang sesuai petunjuk koq tetep gak ada status baru ya di fb ane sob..??
apa fb nya harus di logout dulu..??
atau ada script yang harus ditambahin lagi?
harusnya isi mesejnya kan yang $createpostfb kan sob..??
atau gmn nih?? mohon pencerahan nya ..
  :berduka
« Last Edit: June 12, 2012, 03:38:24 PM by mrOBY »

DANNY

G-Plus Author
  • ADMINISTRATOR
  • More Share Forum Topic
  • [MS] kepala suku
  • *
  • DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!
  • Rep Power: 6
  • Join: September 30, 2009
  • Posts: 11,931
  • Poin: 193.394
    • WWW
  • IP member tracker Logged
  :ehm

ok, coba kita pindahin dua config POST nya kedalem fungsi
coba jalanin dan apa hasilnya
config ane tandain pake slash banyak
//////////////////////////////////////////////////////////////////
diantara ini
//////////////////////////////////////////////////////////////////
Code: [Select]
<?php
/***********************************
SCRIPT COPYRIGHT WWW.MS-ROOM.COM
COMBINE WITH PUBLISH_STREAM FACEBOOK
COMBINE WITH CURL METHOD
COMBINE WITH OPEN_TOKEN
***********************************/
$cURL = new cURL("testing");
$cURL->user_agent "Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54";
$cURL->timeout 0;
$form = array();
//////////////////////////////////////////////////////////////
$form["email"] = "EMAIL_FACEBOOK";
$form["pass"] = "PASSWORD_FACEBOOK";
//////////////////////////////////////////////////////////////

$read $cURL->open("https://m.facebook.com/login.php",$form);
cektoken();

function 
cektoken()
{
global 
$cURL;
$linktokenexplorer "http://developers.facebook.com/tools/explorer";
$hasillinktokenexplorer $cURL->open($linktokenexplorer);
preg_match_all("/GraphExplorer\((.*?)\)/"$hasillinktokenexplorer$matches);
$dapettoken $matches[1][0];
$tokenasli explode('", "',$dapettoken);
$token ereg_replace('"','',$tokenasli[2]);
$deskripsiposting preg_replace ('/<[^>]*>/'''$isipesan2);

//////////////////////////////////////////////////////////////////
$createpostfb 'PESAN_YANGMAU_DIPOSTING';
$idfbc 'MASUKKAN_ID_FACEBOOK_DISINI';
//////////////////////////////////////////////////////////////////

$postgroup = array();
$postgroup["message"] = $createpostfb;
$postgroup["access_token"] = $token;
echo 
$suksespostgroup $cURL->open("https://graph.facebook.com/".$idfbc."/feed/",$postgroup);

}

##############################
class cURL
{
    var 
$user_agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)";
    var 
$proxy_ip "";
    var 
$proxy_port 0;
    var 
$proxy_url "";
    var 
$proxy_type "";
    var 
$status 0;
    var 
$error "";
    var 
$timeout 30;
    var 
$cookies "";
    var 
$last_url "";
    var 
$fix_cookies false;

    function 
__construct($cookies)
    {
        if (!
$cookies$cookies tempnam("./""CURLCOOKIE");
        
$this->cookies $cookies;
    }

    function 
open($url,$post="") {
        
$ch curl_init();
        if (
$this->proxy_url != ""$url str_replace("%s"str_replace("https://","",$url), $this->proxy_url);
        
curl_setopt($chCURLOPT_URL$url);
        
curl_setopt($chCURLOPT_HEADER0);
        if (
$post != "") {
            
curl_setopt($chCURLOPT_POST,1);
            
curl_setopt($chCURLOPT_POSTFIELDS$post);
        }

        
curl_setopt($chCURLOPT_USERAGENT$this->user_agent);
        
curl_setopt($ch,CURLOPT_TIMEOUT$this->timeout);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($ch,CURLOPT_REFERER$this->last_url);
        
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
        
curl_setopt ($chCURLOPT_COOKIEJAR$this->cookies);
        
curl_setopt ($chCURLOPT_COOKIEFILE$this->cookies);

        if (
$this->proxy_ip != "") {
            
curl_setopt($chCURLOPT_PROXYPORT$this->proxy_port);
            
curl_setopt($chCURLOPT_PROXYTYPE'HTTP');
            
curl_setopt($chCURLOPT_PROXY$this->proxy_ip);
            if (
$this->proxy_type == "socks"curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_SOCKS5);
        }
        
$data curl_exec($ch);
            
$this->status curl_getinfo($ch,CURLINFO_HTTP_CODE);
            
$this->error curl_error($ch);
        
$this->last_url $url;
        
curl_close($ch);
        return 
$data;
    }
}
?>


  :beer:

mrOBY

:ehm

ok, coba kita pindahin dua config POST nya kedalem fungsi
coba jalanin dan apa hasilnya
config ane tandain pake slash banyak
//////////////////////////////////////////////////////////////////
diantara ini
//////////////////////////////////////////////////////////////////
Code: [Select]
<?php
/***********************************
SCRIPT COPYRIGHT WWW.MS-ROOM.COM
COMBINE WITH PUBLISH_STREAM FACEBOOK
COMBINE WITH CURL METHOD
COMBINE WITH OPEN_TOKEN
***********************************/
$cURL = new cURL("testing");
$cURL->user_agent "Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54";
$cURL->timeout 0;
$form = array();
//////////////////////////////////////////////////////////////
$form["email"] = "EMAIL_FACEBOOK";
$form["pass"] = "PASSWORD_FACEBOOK";
//////////////////////////////////////////////////////////////

$read $cURL->open("https://m.facebook.com/login.php",$form);
cektoken();

function 
cektoken()
{
global 
$cURL;
$linktokenexplorer "http://developers.facebook.com/tools/explorer";
$hasillinktokenexplorer $cURL->open($linktokenexplorer);
preg_match_all("/GraphExplorer\((.*?)\)/"$hasillinktokenexplorer$matches);
$dapettoken $matches[1][0];
$tokenasli explode('", "',$dapettoken);
$token ereg_replace('"','',$tokenasli[2]);
$deskripsiposting preg_replace ('/<[^>]*>/'''$isipesan2);

//////////////////////////////////////////////////////////////////
$createpostfb 'PESAN_YANGMAU_DIPOSTING';
$idfbc 'MASUKKAN_ID_FACEBOOK_DISINI';
//////////////////////////////////////////////////////////////////

$postgroup = array();
$postgroup["message"] = $createpostfb;
$postgroup["access_token"] = $token;
echo 
$suksespostgroup $cURL->open("https://graph.facebook.com/".$idfbc."/feed/",$postgroup);

}

##############################
class cURL
{
    var 
$user_agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)";
    var 
$proxy_ip "";
    var 
$proxy_port 0;
    var 
$proxy_url "";
    var 
$proxy_type "";
    var 
$status 0;
    var 
$error "";
    var 
$timeout 30;
    var 
$cookies "";
    var 
$last_url "";
    var 
$fix_cookies false;

    function 
__construct($cookies)
    {
        if (!
$cookies$cookies tempnam("./""CURLCOOKIE");
        
$this->cookies $cookies;
    }

    function 
open($url,$post="") {
        
$ch curl_init();
        if (
$this->proxy_url != ""$url str_replace("%s"str_replace("https://","",$url), $this->proxy_url);
        
curl_setopt($chCURLOPT_URL$url);
        
curl_setopt($chCURLOPT_HEADER0);
        if (
$post != "") {
            
curl_setopt($chCURLOPT_POST,1);
            
curl_setopt($chCURLOPT_POSTFIELDS$post);
        }

        
curl_setopt($chCURLOPT_USERAGENT$this->user_agent);
        
curl_setopt($ch,CURLOPT_TIMEOUT$this->timeout);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($ch,CURLOPT_REFERER$this->last_url);
        
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
        
curl_setopt ($chCURLOPT_COOKIEJAR$this->cookies);
        
curl_setopt ($chCURLOPT_COOKIEFILE$this->cookies);

        if (
$this->proxy_ip != "") {
            
curl_setopt($chCURLOPT_PROXYPORT$this->proxy_port);
            
curl_setopt($chCURLOPT_PROXYTYPE'HTTP');
            
curl_setopt($chCURLOPT_PROXY$this->proxy_ip);
            if (
$this->proxy_type == "socks"curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_SOCKS5);
        }
        
$data curl_exec($ch);
            
$this->status curl_getinfo($ch,CURLINFO_HTTP_CODE);
            
$this->error curl_error($ch);
        
$this->last_url $url;
        
curl_close($ch);
        return 
$data;
    }
}
?>


  :beer:

untuk settingan yang dirubahnya masi tetep sama ya sob..
masi belum ada status baru sob..
ini filenya udah saya aplot kesini
http://esitrack.com/oby/fb2/post.php
eh ini stand alone kan?
cuman script yang agan post aja kan?

DANNY

G-Plus Author
  • ADMINISTRATOR
  • More Share Forum Topic
  • [MS] kepala suku
  • *
  • DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!
  • Rep Power: 6
  • Join: September 30, 2009
  • Posts: 11,931
  • Poin: 193.394
    • WWW
  • IP member tracker Logged
ane buka link nya "server error" mas brhoo
penulisan script ada yang salah

SOLUSI:
* cek kembali script, pastikan tanda kutip ga ada yang ilang dari script diatas
* minimal server ente support CURL function
* yupz ini stand alone, ga butuh include file lainnya

barusan ane test masih lancar ko script diatas, dan masih sama persis dengan yang ane terapkan diforum ini
  :bingung

mrOBY

iya aneh ni sob kayanya ada yg salah .. tar ane cek dulu.. kalo pake mozila gak ada report error nya malah.. tapi kalo pake chrome baru keluar error..
scriptnya udah mirip banget ama yang agan post diatas koq sob.. ane cmn ganti yg user,password,pesan,ama id fb nya doank..
eh kalo ane run dilocal bisa gak ya sob? apa harus di run di ip public?

mrOBY

ahhhh muncul ini sob :
{ "error": { "message": "(#200) This API call requires a valid app_id.", "type": "OAuthException", "code": 200 } }
tambah bingung lah saya sob..
mohon pencerahannya lagi
  :kaget

DANNY

G-Plus Author
  • ADMINISTRATOR
  • More Share Forum Topic
  • [MS] kepala suku
  • *
  • DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!DANNY sangat terkenal!
  • Rep Power: 6
  • Join: September 30, 2009
  • Posts: 11,931
  • Poin: 193.394
    • WWW
  • IP member tracker Logged
ahhhh muncul ini sob :
{ "error": { "message": "(#200) This API call requires a valid app_id.", "type": "OAuthException", "code": 200 } }
tambah bingung lah saya sob..
mohon pencerahannya lagi
  :kaget

  :keren
nah ini pertanda baik sob
ga usah panik, ini berarti scriptnya udah working, itu merupakan error dari JSON facebook nya langsung kalau app_id ente salah

btw ini untuk grup atau page?
pastikan lagi ID GROUP nya bener (angka saja)

  :beer:
 

Show query request by visitor on this page (What This?)

script auto upload fb grub,