Возвращать неизвестные ошибки, когда я пытался запланировать публикацию с изображением с помощью Facebook Graph API SDK - PullRequest
0 голосов
/ 28 мая 2020

Я пробовал планировать публикацию с включением изображений с помощью 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;
}
...