2013-11-12 3 views
0

Вот моя функция для размещения на Facebook:Facebook API PHP :: оприходование Ошибка изображения наряду со статусом

require 'facebook-src/facebook.php'; 
function Facebook($content,$link=false,$image=false,$caption=false) 
{ 
$facebook = new Facebook(array(
'appId' => 'myappid', 
'secret' => 'mysecret' 
)); 
$token='mytoken'; 

$post = array('access_token' => $token,'message' =>$content); 
if ($link!==false) $post['link']=$link; 
if ($image!==false) $post['picture']=$image; 
if ($caption!==false) $post['caption']=$caption; 

try{ 
$res = $facebook->api('/MyPage/feed','POST',$post); 
} catch (Exception $e){ 
echo $e->getMessage(); 
} 
} 

Это отлично работает на размещение на моей странице стены, кроме случаев, когда есть изображение, которое будет размещена.

Я пытался давать изображение: http://www.mysite.com/full_link_to_image.png

И я также пытался /home/local/path/to/image.png

Бывшему Facebook отвечает: (#1500) The url you supplied is invalid

И последняя Facebook отвечает: (#100) picture URL is not properly formatted

Я не могу понять, почему проблема. Мое изображение находится в этом месте, и это хорошее изображение. Разрешение изображения, похоже, не является проблемой. Facebook дает ту же ошибку с любым изображением, которое я пытаюсь добавить, и, если нет изображения, он публикует сообщения без ошибок.

+0

_ «кроме случаев, когда изображение должно быть опубликовано». _ Вы хотите загрузить фотографию в свою ленту? –

+0

@AdamAzad, я пытаюсь опубликовать нормальное обновление статуса, но включает изображение. – Alasdair

+0

Публикация фотографий не засчитывается как ** статус обновления **, вы хотите что-то вроде https://www.facebook.com/photo.php?fbid=10151759895453951 –

ответ

0

Во-первых, убедитесь, что вы не работаете с localhost и что http://www.mysite.com/full_link_to_image.png работает в браузере.

Вам необходимо использовать/photos, чтобы загрузить фотографию в альбомы и опубликовать ее на стене вместе с любым сообщением, которое вы указали. Но вы не можете получить миниатюру стороны таким образом.

$attachements = array(
    'access_token' => 'PAGE_TOKEN', 
    'title' => 'POST_TITLE', 
    'message' => 'MY_MESSAGE', 
    'url' => 'IMAGE_URL'; 
);                   
$result = $facebook->api('/PAGE_ID/photos', 'POST', $attachements); 

Чтобы получить эскиз, вы должны использовать ссылку

$attachements = array(
    'access_token' => 'PAGE_TOKEN', 
    'title' => 'POST_TITLE', 
    'link' => 'LINK_URL', 
    'picture' => 'IMAGE_URL' 
    'description' => 'LINK DESCRIPTION', 
); 

$result = $facebook->api('/PAGE_ID/feed', 'POST', $attachements); 

В зависимости от размеров изображения миниатюры будет либо на левой стороне или на верхней части ссылки.

Проверьте изображение другого сайта, если оно все еще не работает.

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