Я пробовал планировать публикацию с включением изображений с помощью Facebook Graph API PHP SDK, но возвращал «Неизвестные ошибки».
Эта проблема возникает только при планировании публикации с включенными изображениями. Когда я попытался запланировать публикацию только текста, а обычная публикация включает изображения, мне это удалось.
Думаю, есть проблема с тем, как добавлять изображения при публикации по расписанию. Но я не нашел решений.
Пожалуйста, дайте мне знать, если вы знаете какие-то решения. Спасибо.
код
$fb = new \Facebook\Facebook([
'app_id' => {app_id},
'app_secret' => {app_secret},
'default_graph_version' => 'v6.0',
]);
$fbApp = new Facebook\FacebookApp( {app_id}, {app_secret} );
if( !empty($aImage['embeds']) || !empty($aImage)){
try{
foreach( $aImage['embeds'] as $img ){
// Returns a `Facebook\FacebookResponse` object
// image uri in $img
$response = $fb->post(
'/me/photos',
array (
'source' => $fb->fileToUpload( $img ),
'published' => false
),
{access_token}
);
$graphNode = $response->getGraphNode();
$photoIds[] = ['media_fbid' => $graphNode['id']];
}
}catch(Facebook\Exceptions\FacebookResponseException $e){
echo 'Graph returned an error [img]: ' . $e->getMessage();
die;
}catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
die;
}
}
$aData = [
'message' => 'success',
];
// temporary var
$scheduling_post = true;
if( $scheduling_post ){
$aData['scheduled_publish_time'] = time() + (24 * 60 * 60);
$aData['published'] = false;
}
if( !empty($aImage['embeds']) || !empty($aImage) ){
foreach ( $photoIds as $key => $photoId ) {
$attachedMediaId = "attached_media[" . $key . "]";
$aData = array_merge(
$aData,
["$attachedMediaId" => $photoId]
);
}
}
try {
$response = $fb->post(
'/me/feed',
$aData,
{access_token}
);
return true;
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// return Unknown errors here
echo 'Graph returned an error [post]: ' . $e->getMessage();
die;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
die;
}