我有以下代码,我想在照片中取消自己的标签。
use Facebook'FacebookSession;
use Facebook'FacebookRequest;
use Facebook'GraphUser;
use Facebook'FacebookRequestException;
FacebookSession::setDefaultApplication('<appid>','<appsecret>');
$session = new FacebookSession('<my access token>');
$request = new FacebookRequest(
$session,
'DELETE',
'/<id of photo im tagged in>/tags',
array (
'id' => '<my fb id>',
)
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
var_dump($response);
var_dump($graphObject);
我有user_photos
和publish_actions
的权限,我正在使用的访问令牌(如前所述,需要删除照片标签)。
然而,当我运行上面的代码时,我得到了这个错误:
Fatal error: Uncaught exception 'Facebook'FacebookAuthorizationException' with message 'Unsupported delete request.'
我试着做完全在文档中,但我不能弄清楚我做错了什么,为什么我得到这个。
我怎么做才能让它工作?
删除标签的正确方法是:
$request = new FacebookRequest(
$session,
'DELETE',
'/<id of photo im tagged in>/tags',
array (
'tag_uid' => '<my fb id>',
)
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
然而,这是不正确的文档。此外,只有被列入白名单的应用才能通过API删除标签。文档也没有包括这一点。如果你的应用程序没有被列入白名单,你会看到以下错误:
{"error": {"message": "(#3)应用程序没有能力进行此API调用","类型":"OAuthException","code": 3}}