«Использовать Facebook \ что угодно», кажется, не работает

0

Я попытался пройти все учебники и ответы удаленно близко к этому без такой удачи.

Я могу заставить свой код работать в одном файле, но я пытаюсь разделить его на класс (контроллер вызывает коллекционер). При перемещении кода в коллекционер (который я включаю в начале) PHP останавливается на строке "--->":

public function FacebookClientObject() {

        $facebookId = "xxxxx";
        $facebookAppSecret = "yyyyy";
        --->FacebookSession::setDefaultApplication($facebookId, $facebookAppSecret);
        echo "default set";
    }

Предполагая, что это потому, что функция не имеет доступа к статическому методу, я пробовал

use Facebook\FacebookSession;

в начале функции. Когда это добавлено, сборщик не может быть включен в начале контроллера. Я переместил автозагрузчик вокруг двух файлов (в том числе в начало FacebookClientObject()) и подтвердил, что он загружается с помощью эхо-заявлений и, похоже, не влияет на эту проблему.

Я даже включил файл, используя

require_once(FULLPATH . 'libs/facebook-php-sdk-v4/src/Facebook/FacebookSession.php');

вместо use Facebook\FacebookSession;

Я чувствую, что это должно быть что-то очень простое, что я просто не замечаю.

  • 1
    Есть ошибки в ваших логах? Попробуйте добавить error_reporting(-1); временно к самому верхнему сценарию, чтобы вы могли видеть ошибки на экране.
  • 0
    <b> Неустранимая ошибка </ b>: класс 'FacebookSession' не найден в <b> ..... FacebookCollector.php </ b> FacebookCollector.php содержит функцию, упомянутую выше.
Показать ещё 7 комментариев
Теги:
facebook

1 ответ

0
Лучший ответ

Проблема заключалась в том, как я пытался использовать пространства имен.

1) Я use Facebook\yyyyyy; внутри функции, а также просто внутри класса. Это вызвало ошибки в обоих местах. Такой код относится к началу файла перед объявлением класса.

2) При попытке require_once файлов вместо этого у него не было задано пространство имен, поэтому автозагрузчик Facebook не смог найти классы, которые также вызвали ошибку. Это было даже при том, что я мог проверить, что классы были объявлены с помощью print_r(get_declared_classes()); ,

3) Важное значение имеет добавление error_reporting(E_ALL); и ini_set('display_errors', 1); к началу моего кода. Пока я мог понять, какие строки вызывают проблемы, я не знал, почему до этого.

Спасибо, халфер!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню