Facebook API PHP ::错误发布图片以及状态

时间:2013-11-12 08:39:01

标签: php facebook facebook-graph-api facebook-php-sdk

这是我发布到Facebook的功能:

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对我尝试添加的任何图像都给出了同样的错误,如果没有图像,那么它会在没有错误的情况下发布。

1 个答案:

答案 0 :(得分: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);

根据图像尺寸,缩略图可以位于链接的左侧或顶部。

如果它仍无效,请使用其他网站的图片进行测试。