将图片上传到页面相册是可行的但是在墙上张贴图片不是

时间:2013-01-13 14:40:27

标签: php facebook facebook-graph-api

错误消息 OAuthException:(#100)图片网址格式不正确

我有一个非常奇怪的问题,我可以使用图形api在我的页面相册上传图片,但是当我尝试使用图形api发布图片时,它无效,

注意当我发布消息或链接到墙壁时,它会被发布,问题只出在图片上。

我在这里放两段代码片段:

1,这是我试图将图片上传到页面相册(工作)时:

$facebook->setFileUploadSupport("http://apps.facebook.com/pagecron");
$x=realpath($_FILES['source']['tmp_name']);
$parameters = array('message' => $_POST['message'],'source' =>'@' . $x );
$parameters['access_token'] = $_SESSION['active']['access_token'];
$check=$facebook->api('/'.$_SESSION['active']['id'].'/photos/','POST',$parameters);

2,这是我试图将图片发布到墙上(不工作):

$img = realpath($y);
$facebook->setFileUploadSupport("http://apps.facebook.com/pagecron");
$x=realpath($_FILES['source']['tmp_name']);
$parameters = array('message' => $_POST['message'],'picture' =>'@' . $x );
$parameters['access_token'] = $_SESSION['active']['access_token'];
$check=$facebook->api('/'.$_SESSION['active']['id'].'/feed/','POST',$parameters);

2 个答案:

答案 0 :(得分:2)

Ist Thing :您需要发布到/TIMELINE_PHOTOS_ALBUM_ID/photos

第二件事:可能没有这样一个名字的专辑,所以你应该创建它(检查后)。

如何

 $albums =$facebook->api('pageid/albums',GET,array('access_token'=>'access_token');      
 foreach($albums['data'] as $album)
 {
   if($album['name'] == 'TIMELINE_PHOTOS')
   {
      $uid = $album['id'];
   }
 }
if(isset($uid) && $uid !=0)
{
  //mean album is there so use that uid to post your photo
}
else 
{
    //create your album with that name and use its id
}

答案 1 :(得分:1)

如果您想将照片发布到用户的墙上,您需要POST/TIMELINE_PHOTOS_ALBUM_ID/photos

这里似乎没有捷径可以解决这个问题。您需要搜索/USER_ID/albums的结果,以查找名为“时间线照片”的相册的album_id(或使用FQL获取)。

documentation表示专辑限制为200张照片。如果用户的“时间轴照片”专辑中有超过200张照片,我不确定会发生什么。我找不到朋友去检查这个。