2

出现 OAuthException时出错:(#100) 图片 URL 格式不正确

我有一个非常奇怪的问题,我可以使用graph api在我的页面相册上上传图片,但是当我尝试使用graph 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);
4

2 回答 2

2

Ist 事情:您需要 POST 到/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
}
于 2013-01-14T11:50:18.647 回答
1

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

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

文档说相册限制为 200 张照片。我不确定如果用户的“时间线照片”相册中有超过 200 张照片会发生什么。我找不到朋友来检查这个。

于 2013-01-13T16:42:54.160 回答