Я разрабатываю свое первое приложение для 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);

Пожалуйста, помогите мне с этим. Спасибо

0
Maven 6 Мар 2012 в 23:09

3 ответа

Лучший ответ

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

$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
eosgood 13 Мар 2012 в 20:49

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

Примере:

include('class.Facebook.php');
$facebook = new Facebook();
1
Jonathan Christian 6 Мар 2012 в 19:18

Вам нужно создать экземпляр класса, сначала создав новый объект. Вам также необходимо передать массив $ 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
mousesports 6 Мар 2012 в 20:20