照片标记问题 - Facebook / Graph API

时间:2011-06-08 03:55:11

标签: facebook facebook-graph-api

我的代码不起作用,上传已正确完成但标记失败:(
它显示致命错误:未捕获OAuthException:(#121)投掷的照片ID无效

$facebook->setFileUploadSupport(true);
$album_details = array(
 'message'=> 'Description',
 'name'=> 'Name'
);
$create_album = $facebook->api('/me/albums', 'post', $album_details);
$photo_details = array(
 'message'=> 'Photo Description',
 'tags'=> makeTagArray($friendsID),
);
$photo_details['image'] = '@' . realpath('img/'.$img_name);
// $upload_photo = $facebook->api('/'.$create_album['id'].'/photos', 'post', $photo_details);

$upload_photo = $facebook->api('/'.$create_album['id'].'/photos?access_token='.$facebook->getAccessToken(),'post', $photo_details);

function makeTagArray($userId) {
 foreach($userId as $id) {
      $tags[] = array('tag_uid'=>$id, 'x'=>$x,'y'=>$y);
      $x+=50;
      $y+=50;
  }
 $tags = json_encode($tags);
 return $tags;
}

其他必要信息

'req_perms' => 'publish_stream,status_update,user_photos'

我也试过这个,但没有用,它显示 data []

$x=5;
 $response='';
 for ($i=0;$i<count($friendsName);$i++)
 {
  $post_url = "https://graph.facebook.com/".$upload_photo['id']."/tags/".$friendsID[$i]."?access_token=".$facebook->getAccessToken()."&amp;x=".$x."&amp;y=80&amp;method=POST";
  $response = $response.file_get_contents($post_url);
  $x = $x + 53;
 }

为一个人检查 $ post_url ,然后我在所有人的循环中运行

https://graph.facebook.com/Pic_ID/tags/620949133?access_token=Access_Token|2.AQDOMdHNge0UCXG6.3600.1307613600.1-100001916529381|lCYzRYy9YPJvy1WBqkuoGVWvd50&x=5&y=80&method=POST

显示
{
"error" : {
"type": "OAuthException",
"message": "An access token is required to request this resource."
} }

我故意改变了一些价值

3 个答案:

答案 0 :(得分:2)

将此权限添加到所需权限:user_photos

答案 1 :(得分:0)

  1. 您需要申请publish_stream权限。
  2. 您需要为要标记的每个Facebook用户/页面发出多个请求,1。
  3. 要发出请求,您需要在Facebook中显示id和用户ID。 发布到PHOTO_ID / tags?to = USER_ID或PHOTO_ID / tags / USER_ID,X&amp; Y作为变量进行协调。

    有关更多指导,请参阅此处的官方文档(http://developers.facebook.com/docs/reference/api/photo/)。

答案 2 :(得分:0)

我不知道这是否可行,但你可以尝试一下。首先尝试上传照片。然后从上传的照片中获取图片的ID,然后将标签添加到上传的照片中。