-2

Я пытаюсь загрузить изображения в facebook с помощью php. Но теперь я получаю эту ошибку «Uncaught OAuthException: (# 324) Требуется загрузить файл, который был загружен».Не удается загрузить изображения в лицо.

$app_id = "257711244318488"; 
$app_secret = "dc4b279079e4eafdfgdfgdfgf6e5b9ef37fb48402"; 
$facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
     'cookie' => true 
     )); 
$fbcheck= $facebook->getUser(); 

if(is_null($fbcheck) or !$fbcheck or $fbcheck==0) 
    { 
    header("Location:{$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos'))}"); 
    exit; 
    } 
if($_SERVER['REQUEST_METHOD'] =='POST'){ 
    //$img = realpath($_FILES["pic"]["tmp_name"]); 
    $facebook->setFileUploadSupport("http://" . $_SERVER['SERVER_NAME']); 
    $photo = $facebook->api('/me/photos', 'POST', 
    array(
      'source' => $urlParser->fbpostpic($input['ik']), 
      'message' => 'This photo was uploaded via www.Picslanda.com' 
    ) 
    ); 

      echo '<p><a target="_blank" href="http://www.facebook.com/photo.php?fbid='.$photo['id'].'">Click here to watch this photo on Facebook.</a></p>'; 
} 

$attachment = array(
    'message' => 'Hello friends ', 
    'name' => "My Name", 
    'caption' => "My caption", 
    'link' => "www.site.com", 
    'description' => 'Description.', 
    'picture' => "url", 
    'actions' => array(array(
     'name' => 'Get Search', 
     'link' => 'http://www.google.com' 
     )) 
     ); 
    $result = $facebook->api(
    '/me/feed/', 
    'post', 
    $attachment 
    ); 
+2

Вы, вероятно, следует создать новый app_secret. –

+0

Жаль, что я тебя не понял. Какая проблема с этим app_secrete?. Пожалуйста, объясните –

+1

. Вы отправили его здесь, так что теперь любой, кто читает это, может изменить все настройки вашего приложения. Кроме того, параметр «message», как это прямо против политики Facebook – Igy

ответ

0

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

$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos,photo_upload')) 

Кроме того, app_secret должно быть секретом, поэтому его публикации в Интернете, вероятно, не является хорошей идеей, поскольку она позволяет любому загружать фотографии под названием приложения.

+0

Спасибо за ваш повтор, но теперь я получаю эту ошибку «Невыпущен OAuthException: (# 324) Требуется загрузить файл, загруженный в ". Пожалуйста, помогите мне –

+0

Iam немного запутался в массиве части пути изображения ( 'source' => 'http: //www.mysite,com/picture.png', 'message' => 'msg' ). Пожалуйста, проверьте источник. Правильно ли это? –

+0

'source' должен быть путь к файловой системе (предпочтительно абсолютный), где находится файл, а не URL. Например, '/ tmp/picture.png' будет хорошим путем, если файл находится в'/tmp'. –

4

Во-первых, Вам нужно разрешение photo_upload

должно быть

array('scope' => 'user_status,publish_stream,user_photos','photo_upload') 

Второй

Вам необходимо включить загрузку файлов в PHP SDK

$facebook->setFileUploadSupport(true); 

если вы хотите загрузите фотографию, вы должны использовать @ в пути к файлу

// Upload a photo to a user’s profile 
// Your app needs photo_upload permission for this to work 
$facebook->setFileUploadSupport(true); 

$img = '/tmp/mypic.png'; 

$photo = $facebook->api('/me/photos', 'POST', 
         array('source' => '@' . $img, 
           'message' => 'Photo uploaded via the PHP SDK!' 
         )); 

проверить более подробную информацию на https://developers.facebook.com/docs/reference/php/facebook-setFileUploadSupport/

0

Проблема может быть, что вы не имеете @ в 'source'=> '@' . filepath. Когда я оставлю это, я получаю ваш 324 error.

К сожалению, я получаю неперехваченное Oauth Exception #1 когда я положил его в.

Смежные вопросы