有没有办法用facebook API删除照片标签?

use*_*318 8 api facebook facebook-graph-api

有一些与此主题相关的旧帖子,但API已经发生变化,所以我想再问一次.有没有办法用Facebook API删除照片标签?

我看到了有关使用图API删除照片标签的文档.
https://developers.facebook.com/docs/reference/api/photo/#tags

您可以通过向/ PHOTO_ID/tags/USER_ID或PHOTO_ID/tags?to = USER_ID发出HTTP DELETE请求来删除照片中特定用户的标记.

删除照片上的标记需要publish_stream权限,并支持以下参数.

Parameter    Description                                Type    Required

to           USER_ID of the User to tag; can also be    string  yes
             provided in URL path (see above).       
Run Code Online (Sandbox Code Playgroud)

如果删除成功,您将获得以下返回.

Description                 Type

If the deletion succeeded   boolean
Run Code Online (Sandbox Code Playgroud)

当我尝试它时,它不起作用.相反,我总是得到以下错误:

{
  "error": {
    "message": "(#3) Application does not have the capability to make this API call.", 
    "type": "OAuthException", 
    "code": 3
  }
}
Run Code Online (Sandbox Code Playgroud)

我向Facebook提交了一个错误报告,他们似乎通过将其置于"分类"状态来承认错误.几个星期后,尽管其他几位开发人员订阅了错误报告,他们还是通过以下解释结案:

我们根据对开发人员社区的影响确定错误的优先级.由于这个错误报告没有得到其他开发人员的太多关注,我们正在关闭它以便更好地关注最重要的问题.您的问题很可能是由于实施问题造成的,在这种情况下,您可以尝试在Stack Overflow上找到帮助.

错误报告在这里:https://developers.facebook.com/bugs/122135101317762

任何人都可以帮我弄清楚如何通过API解开?我的应用程序目前是作为Web应用程序编写的,而不是移动应用程序.

提前感谢您对此的任何帮助.

Mar*_*ery 5

更新:正如Christopher Blizzard在接受的答案中解释的那样,这实际上不是一个错误,而是以前记录严重的故意行为.

在此之前,当这个答案第一次发布时,我调查了一下,试图找出是否有任何解决这个限制的方法.答案是不.我已经在下面留下了我的发现的详细信息,以防将来对任何人感兴趣,但Christopher Blizzard的输入使得大部分内容都过时了.

我有理由相信答案是否定的,根本没有办法.我已经筋疲力尽了我能想到的所有可能的调查线,并且空白了.让我列出我的发现:

1)该错误会影响删除文档中列出的照片标记的两种方法.

根据文档,将删除请求发送到https://graph.facebook.com/PHOTO_ID/tags/USER_ID/并将其发送到https://graph.facebook.com/PHOTO_ID/tags?to=USER_ID应该都有效.但是,实际上,正如您已经观察到的那样,这两种方法都会失败并出现以下错误:

{
  "error": {
    "message": "(#3) Application does not have the capability to make this API call.", 
    "type": "OAuthException", 
    "code": 3
  }
}
Run Code Online (Sandbox Code Playgroud)

2)它与你的应用程序的权限无关

使用Graph Explorer,您可以使用授予您所有可能权限的访问令牌轻松测试此内容,并且删除标记仍然失败.

3)这与用户的隐私设置无关

我尝试在Facebook上创建一个新用户,并将设置菜单中的每个隐私设置设置为最宽松的选项.它没有任何区别.

4)这与照片所有者或原始标签的创建方式无关

即使您正在使用其访问令牌的人拥有该标签所在的照片并自己创建了该标签,您在尝试删除该标签时仍会遇到相同的错误.这适用于他们是通过普通的Facebook用户界面创建照片和标签,还是通过Graph API创建应用程序.

5)使用除Graph之外的API没有解决方法

FQL只允许数据检索,而不是插入,修改或删除.Open Graph没有与照片或照片标签相关的方法.不推荐使用的REST API - 仍然可用,但Facebook指示我们不使用它们的文档已被删除 - 具有获取和添加标记的功能方法,但没有删除它们,正如您在缓存中看到的那样版本的文档,通过Wayback Machine.

6)似乎没有任何方法可以使用POST请求删除标记.

您可以更改现有标记的位置,但就是这样.指定无效位置会引发错误,并且不会影响现有标记.to在post请求中指定两次字段以尝试更改标记的目标会引发错误并且无效.

7)其他人试图解决同样的问题,但他们没有成功.

我没有找到很多关于这个问题的帖子,但是这两个都没有帮助:


在测试了上述所有要点之后,我没有想法.当然,我无法肯定地说这是不可能的 - 我们不知道Facebook的后端发生了什么,或者为什么这个bug存在.我认为这些测试代表了对问题的彻底检查,但他们没有透露任何解决方案.


Chr*_*ard 2

我刚刚更新了Developers.facebook.com 上的文档,但简短的版本是删除标签 API 仅针对某些应用程序列入白名单。