Я пытаюсь создать событие с изображением, но когда я загружаю картинку в facebook, это вызывает у меня ошибку (# 324) Отсутствует или недействительный файл изображения
это функция для загрузки изображения.
public function uploadFacebookEventPicture($fullPath, $eventId) { $mainImage = '@' . $fullPath; $imgData = array( 'picture' => $mainImage ); try { $data = $this->facebook->api('/'.$eventId, 'post', $imgData); return $data; } catch (FacebookApiException $e) { error_log('Failed to attach picture to event. Exception: ' . $e->getMessage()); } return null; }
код кода, который я использую после сообщения формы
if ($file[$name]['error'] == 0) { $fileName = $file[$name]['name']; $fileInfo = pathinfo($fileName); $newFileName = md5($fileName . microtime()) . '.' . $fileInfo['extension']; $fullPath = $this->config->applications->uploadPath . $newFileName; $form->$name->addFilter('Rename', $fullPath); if ($form->$name->receive()) { $resize = new SimpleImage(); $resize->load($fullPath); $resize->resizeToWidth($this->config->applications->resize->width); $resize->save($fullPath); // Gathering data for saving files information $fileInfo = array( 'name' => $newFileName, 'type' => FileTypes::IMAGE, 'description' => 'Application: Uploaded from Events form in back-end', ); $fileId = $dbFiles->save($fileInfo); $eventFileData = array( 'event_id' => $eventId, 'file_id' => $fileId, 'main_image' => ($name == 'mainImage') ? 1 : 0 ); $dbEventFiles->save($eventFileData); if ($name === 'mainImage') { $success = **$this->uploadFacebookEventPicture($fullPath, $eventData['fb_event_id']**); } } }
Объект facebook создается с загружаемым файлом true
$facebook = new Facebook(array( 'appId' => $config->facebook->appId, 'secret' => $config->facebook->secret, 'fileUpload' => true ));
Согласно отслеживанию ошибок в Facebook, эта ошибка исправлена: сообщение об ошибке
Status changed to Fixed
Код выше отлично работает для загрузки изображения в facebook.