/v2.1/{post-id} не доставляет фотографии

Я знаю, что этот вопрос задавали несколько раз, но я не могу найти решение из других сообщений:

Моя цель - прочитать ленту на Facebook с одного из моих сайтов на Facebook! На этом сайте есть несколько постов с несколькими фотографиями.

При первом звонке, который вы видите внизу, я всегда получаю только одно фото, а мне нужны все. Для этого я делаю второй запрос, который должен предоставить мне все детали для этого сообщения, если я использую версию 2.1, которую я изменил в FacebookRequest.php.

Вот мой код:

FacebookSession::setDefaultApplication('yyy','xxxxx');

$session = new FacebookSession('yyy|xxxxx');

$url = '/{pageid}/feed';
$request = new FacebookRequest($session, 'GET', $url);
$response = $request->execute();
graphObject = $response->getGraphObject();
$rawFeed = $graphObject->asArray();

foreach($rawFeed['data'] as $item) {

    $x = explode('_',$item->id);    

    $url = "/".$x[0];           
    $request = new FacebookRequest($session, 'GET', $url);
    $response = $request->execute();
    $graphObject = $response->getGraphObject();
    $object = $graphObject->asArray();
    echo "<pre>";var_dump($object);echo "<pre>";
}

Если я использую этот код, я всегда получаю сообщение об ошибке:

Fatal error: Uncaught exception 'Facebook\FacebookAuthorizationException' with message '(#100) Requires user session'

Почему первый запрос возвращает обратно данные, а мерзкий упирается в это исключение!

Изменить 1

Найдено решение проблемы сеанса (Токен доступа Facebook для страниц) - (верхний ответ ), но все еще застрял на проблеме с фотографией:

Теперь я получаю данные из Facebook, но не прикрепляю фотографии к сообщению!

Вот так у меня больше нет проблем с аутентификацией

$accessToken = "{accestToken from GRAPH API EXPLORER}";
$session = new FacebookSession($accessToken);

$url = "/{myPersonalFB-ID}/accounts";
$request = new FacebookRequest($session, 'GET', $url);
$response = $request->execute();
$graphObject = $response->getGraphObject();
$pages = $graphObject->asArray();

$pageAccesstoken = false; 
foreach($pages['data'] as $page)
{
    if($page->id != "{MyPageID}") continue;
    else {
        $pageAccesstoken = $page->access_token;
    }
}
$session = new FacebookSession($pageAccesstoken);

$url = '/{MyPageID}/feed';
...
...

person Thomas Schober    schedule 02.09.2014    source источник
comment
Пожалуйста, покажите, как вы реализовали это с помощью токена доступа к странице сейчас (особенно там, где вы установили его для использования в запросах). Если ваш первый вызов с токеном доступа к странице прошел успешно, нет очевидной причины, по которой не следует читать данные отдельных сообщений. Кстати, вам следует подумать о создании «вложенных запросов», как описано в документации, чтобы вам приходилось выполнять только один запрос, а не несколько запросов в цикле.   -  person CBroe    schedule 03.09.2014
comment
См. изменения в Edit 1: я возвращаю pageAccestoken из своих учетных записей для этой страницы. Но в запросе /v2.1/{post-id} я не получаю обратно ни одной фотографии, а их больше одной в каждом из постов! Я также уже пытался добавить ?fields=attachments, в результате чего я получаю сообщение об ошибке, сообщающее, что вложений нет!   -  person Thomas Schober    schedule 09.09.2014


Ответы (2)


Если вам требуется сеанс приложения, используйте вместо этого следующее:

$session = FacebookSession::newAppSession();

Затем вы можете передать этот сеанс приложения в свой вызов API, чтобы получить фид страницы.

person Niraj Shah    schedule 02.09.2014
comment
Эта проблема была решена, найдено решение, но возникла новая проблема (см. Редактировать 1 в вопросе) - person Thomas Schober; 03.09.2014

Кажется, это ошибка Facebook. Мой коллега открыл вопрос. Вот ссылка: https://developers.facebook.com/bugs/762280800482269/ Вы также Информацию можно найти здесь: https://developers.facebook.com/bugs/790976317600139/ Надеюсь, это поможет вам.

person Eridana    schedule 03.10.2014