Вызов функции-члена setFileUploadSupport () для необъекта - PullRequest
0 голосов
/ 06 марта 2012

Я занимаюсь разработкой своего первого приложения для Facebook, которое включает создание нового альбома и размещение фотографий на стене пользователя.

Изучив документацию на Facebook и несколько учебных пособий, я получил этот код, но я получаю следующую ошибку с ним.

Неустранимая ошибка: вызов функции-члена setFileUploadSupport () для необъекта…

        $facebook -> setFileUploadSupport(true);
        $album_details = array('message' => 'Album desc', 'name' => 'Album name');
        $create_album = $facebook -> api('/me/albums', 'post', $album_details);
        $album_uid = $create_album['id'];

        $photo_details = array('message' => 'Photo message');
        $file = 'app.jpg';
        $photo_details['image'] = '@' . realpath($file);

        $upload_photo = $facebook -> api('/' . $album_uid . '/photos', 'post', $photo_details);

Пожалуйста, помогите мне с этим. * 1010 большое спасибо *

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Вам нужно создать экземпляр класса, сначала создав новый объект. Вам также нужно передать массив $ config - поскольку конструктор «пропускает 1 аргумент»; это ошибка, которую вы получаете.

// Create facebook object.
$config = array(
'appId'  => 'app id',
'secret' => 'app secret',
'fileUpload' => true
);

// Initiate the library
$facebook = new Facebook($config);

Замените "идентификатор приложения" и "секрет приложения" на тот, который вы получили при создании приложения на Facebook.

Редактировать: Добавлено небольшое изменение в коде. $ Config принимает третий необязательный элемент в массиве, называемый fileUpload (логическое значение, указывающее, разрешена ли загрузка файлов). Вам нужно установить это, потому что вы вызываете метод setFileUploadSupport (). Или другой способ написать так, как вы это сделали, и передать логическое значение непосредственно в setFileUploadSupport (true). В любом случае работает.

1 голос
/ 14 марта 2012

Вам потребуется создать экземпляр класса с поддержкой загрузки файлов и запросить правильные разрешения.

$facebook = new Facebook(array(
    'appId'  => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
    'fileUpload' => true // enable file upload support
));

// get a login url with the correct perms
$facebook->getLoginUrl(array(
  'scope' => 'photo_upload,first_name,email,publish_stream,read_stream'
));

photo_upload - это ключевое разрешение, позволяющее загружать фотографии.

1 голос
/ 06 марта 2012

Вы создали экземпляр своей переменной ($ facebook) как класс объектов?

Пример:

include('class.Facebook.php');
$facebook = new Facebook();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...