I'm using PHP Graph SDK to publish posts with images on Facebook, the source image size is 900x900px.
This is my code in summary:
require_once('php-graph-sdk-5.x/src/Facebook/autoload.php');
$fbk_appid = 'xxxx';
$fbk_appsecret = 'xxxx';
$fbk_tokenpage = 'xxxx';
$fbk_pageid = 'xxxx';
$picture = 'img1.jpg';
$link = 'https://www.mysite.ext/page.html';
$message = 'My message';
$name = 'Title under image';
$tags = '#tags...';
$description = 'Description under title';
$fb = new Facebook\Facebook([
'app_id' => $fbk_appid,
'app_secret' => $fbk_appsecret,
'default_graph_version' => 'v3.3'
]);
try{
$response = $fb->post('/'.$fbk_pageid.'/feed',
array (
'picture' => $picture,
'link' => $link,
'message' => $message,
'name' => $name,
'description' => $description,
),
$fbk_tokenpage
);
}catch(Facebook\Exceptions\FacebookResponseException $e){
// Error Graph ( $e->getMessage() )
}catch(Facebook\Exceptions\FacebookSDKException $e){
// Error SDK ( $e->getMessage() )
}
// $response->getGraphNode(); //e.g. {"id":"1446491425007649_523376413379549"}
Upon publication the image is always resized to 1200x628px. How to force a custom image format (square for example)?
Thanks!
I solved! instead of /feed i used /photos, like this:
$response = $fb->post('/'.$fbk_pageid.'/photos',
array (
'message' => 'Head text',
'source' => $fb->fileToUpload('https://www.mysite.ext/img.png')
),
$fbk_tokenpage
);