我的代码不起作用,上传已正确完成但标记失败:(
它显示致命错误:未捕获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()."&x=".$x."&y=80&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."
}
}
我故意改变了一些价值
答案 0 :(得分:2)
将此权限添加到所需权限:user_photos
答案 1 :(得分:0)
要发出请求,您需要在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,然后将标签添加到上传的照片中。