Can';使用Facebook API标记照片
我尝试在Facebook API中使用标记功能,但它不起作用 这是权限代码:Can';使用Facebook API标记照片,facebook,facebook-graph-api,tagging,Facebook,Facebook Graph Api,Tagging,我尝试在Facebook API中使用标记功能,但它不起作用 这是权限代码: $facebook->getLoginUrl( array( 'canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'user_photos, friends_photos, publish_stream, offline_access, user_l
$facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms' => 'user_photos, friends_photos, publish_stream,
offline_access, user_likes, user_photo_video_tags',
'next' => $appCanvasPage.'index.php',
'cancel_url' => $appCanvasPage
)
);
这是我尝试的第一种方法:
$photoId = $userid."_".$upload_photo['id'];
$post_url = "https://graph.facebook.com/"
.$$photoId . "/tags/" . $friendid
. "?access_token=". $access_token
. "&x=" . $x_coordinate
. "&y=" . $y_coordinate
. "&method=POST";
file_get_contents($post_url);
这将返回一个错误:
"message": "Unsupported post request.",
"type": "GraphMethodException",
"code": 100
我尝试过的第二种方法:
$fd = 'XXXX';
$tag = array(
'tag_uid' => $fd,
'x' => '10.0',
'y' => '10.0'
);
$tags = array($tag0);
$facebook->api(
array(
'method' => 'photos.addTag',
'pid' => $photoId,
'tags' => json_encode($tags)
)
);
此代码也不会标记照片。
photos.addTag
是一个旧的遗留RESTAPI。你应该这样称呼:
$fd = 'XXXX';
$tag0 = array('to' => $fd, 'x' => '10.0', 'y' => '10.0');
$tags = array($tag0);
$facebook->api('/' . $photoId . '/tags', 'POST', $tags);
你真的应该做一些调试,而不是只是“纳闷”为什么事情会失败
您在那里写了$$photoId,带有两个$符号。这就是PHP中所谓的“变量变量”,它会尝试访问一个名为$photoId内容的变量,但我怀疑您的脚本中没有设置名为“$someuserid\u somepictureid”的变量
因此,除了给出一个错误(如果你已经设置了错误报告,就像我已经告诉过你的那样),如果你刚刚调试了$post\u url,你可以很容易地发现它有问题…好的..我找到了解决方案..可以用这段代码做标记吗
$tag = array(
'tag_uid' => $fb->getUser(),
'x' => 0,
'y' => 0
);
$tags[] = $tag;
$image = array(
'access_token' => $session['access_token'],
'tags' => $tags,
);
$fb->setFileUploadSupport(true);
$image['image'] = '@'.realpath($image_path);
$fb->api('/me/photos', 'POST', $image);
没有出现错误..但是图片没有标记,代码就停在那里..代码后面没有页脚..“代码后面没有页脚…”-这很可能意味着脚本中有错误,因此它会中断。在PHP配置中将错误报告和显示错误设置为合理级别,以便PHP可以向您显示该错误的原因。这不是一个错误,原因是响应“消息”:“不支持的post请求”。这是post方法不正确。代码只是一个输入错误。。我已经将图片id声明为userid\u photoidOf course,这会导致错误,因为您尝试连接的API地址类似于
https://graph.facebook.com//tags/1234567890
,当然您会收到一条“不受支持的post请求”消息,因为它只是一个无意义的地址…nvm..我刚刚找到了解决方案..:)
$tag = array(
'tag_uid' => $fb->getUser(),
'x' => 0,
'y' => 0
);
$tags[] = $tag;
$image = array(
'access_token' => $session['access_token'],
'tags' => $tags,
);
$fb->setFileUploadSupport(true);
$image['image'] = '@'.realpath($image_path);
$fb->api('/me/photos', 'POST', $image);