Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

POST to Facebook page via CURL

I've set up a script to post news to my facebook page via PHP

It worked for the last 2 years

Now, without notice it stopped working.

I correctly get the access_token but the second part returns this error

{"error":{"message":"An unknown error has occurred.","type":"OAuthException","code":1}}

Here is the code

$url = "https://graph.facebook.com/oauth/access_token";
$postString = "client_id=KEY&client_secret=SECRET&type=client_cred";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postString);
$access_token = str_replace( "access_token=", "", curl_exec($curl) );


$titolo = 'Test';
$link_pulito = 'test.html';
$testo_fb = 'Test';

$attachment =  array(
        'access_token' => $access_token,
        'message' => 'MESSAGE',
        'name' => 'test',
        'link' => 'http://www.test.com/workshop/',
        'description' => 'test test test',
        'picture'=>'http://www.test.com/77818763a19937bdd82b25f26cef2522.jpg'
        );

// set the target url
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/MYPAGE/feed');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);  //to suppress the curl output 

$result= curl_exec($ch);
curl_close ($ch);
like image 857
Marco Zanirato Avatar asked Oct 05 '22 22:10

Marco Zanirato


1 Answers

Facebook has changed the way of leasing tokens. Please use the facebook PHP SDK from https://github.com/facebook/facebook-php-sdk

like image 151
Steffen Avatar answered Oct 10 '22 17:10

Steffen