Публикация нескольких фотографий как одной партии на странице Facebook - PullRequest
0 голосов
/ 23 мая 2018

Мне нужна помощь.у меня есть группа фотографий, обычно выбранных из базы данных.Я зацикливаюсь на массиве, скажем $ piclinks, затем осматриваю его, чтобы опубликовать фотографии.Но мне нужно, чтобы он отображался как один пост, как показано на изображении Exactly how i want the pics to appear on facebook page.

Те, у кого есть идеи, что я могу сделать

 <?php


    define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__.'/src/Facebook/');
require_once(__DIR__.'/src/Facebook/autoload.php');

        $fb = new Facebook\Facebook([
         'app_id' => '2082153322064454',
         'app_secret' => '7355d8111164630537a35b43a1bbd336',
         'default_graph_version' => 'v2.2',
        ]);

        $piclinks = array("http://d24w6bsrhbeh9d.cloudfront.net/photo/agydwb6_460s.jpg", "https://greenparrotnews.com/wp-content/uploads/2017/10/Boss-Mustapha.jpg");
        foreach($piclinks as $selectedlink){

        //Post property to Facebook
            $linkData = [
             'message' => 'Your message here',
             'url' => $selectedlink
            ];
            $pageAccessToken ='EAAdltRkhKkYBAHbLBwoKDZBSat5ulIJZBbMz4gZBQSZCZCY7oH7vRgN16QBuYZBZAjSzZCvt04ypoRaTG4o5jdhXA9bjIV8ZB0ZAJ8lsVNZBxYRInwn7tc8ZBsmdhxKZBnmHCA0n3k3wOOlQRcpDPQyXa1RZBoSb3ZAasDhHHxQfTeRdPObE68OZAAxMoaDcs';


            try {
             $response = $fb->post('/me/photos', $linkData, $pageAccessToken);
            } catch(Facebook\Exceptions\FacebookResponseException $e) {
             echo 'Graph returned an error: '.$e->getMessage();
             exit;
            } catch(Facebook\Exceptions\FacebookSDKException $e) {
             echo 'Facebook SDK returned an error: '.$e->getMessage();
             exit;
            }
            $graphNode = $response->getGraphNode();
            echo 'done';

            }

?>

1 Ответ

0 голосов
/ 25 мая 2018

Сначала вы должны загрузить свои фотографии, затем вы получите удостоверение личности с фотографией.После этого вам нужно создать пост со всеми идентификаторами фотографийЭто может быть полезно для вас.Пример кода:

$images = []; // say your all images is in array.
foreach($images as $image){
    try {
        $response = $fb->post("/PAGEID/photos", [
            'source' =>  $fb->fileToUpload($image),
            'published' => 'false'
        ], PAGE_TOKEN);
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        $errors[]= 'Error: ' . $e->getMessage();
    }

    $graphNode = $response->getGraphNode();
    $post_images[]= $graphNode['id'];
}

foreach ($post_images as $key => $post_image) {
    $attachMedia[$key] = ['media_fbid' => $post_image];
}

try {
    $response = $fb->post(
        "/PAGEID/feed",
        [
            'message' => YOUR_MESSAGE,
            'attached_media' => $attachMedia
        ],
        PAGE_TOKEN

    );
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    $errors[]= 'Error: ' . $e->getMessage();
}

$post = json_decode($response->getBody());
...