我允许用户向邀请他们使用我的应用的其他用户发送请求。
请求发送正常,受邀用户可以找到返回我的应用的方式。我遇到的问题是在用户返回后删除请求。
首先 - 当用户点击请求时,我想删除它是否与我的应用程序交互。这将涉及在图表上向此对象发送DELETE:request-id_recipient-id。但是,因为用户可能没有与我的应用程序进行交互,所以我没有他们的user_id,所以我不能这样做 - 用户只能自己清理我的请求(不好)。
其次 - 即使用户确实与我的应用程序进行交互,我也会获得他们的用户ID并调用DELETE request-id_recipient-id我得到了这个回复:
(#200)当前查看器500 ******(实体:267270596647001)无法看到由id 267270596647001支持的实体(类EntAppRequest)
这表明请求的收件人无权使用其访问令牌删除它?这是正确的,因为它似乎对我有点倒退。或者这是我需要manage_requests扩展权限的情况?这对我来说似乎也很奇怪,因为它会为用户可能拒绝的Auth框添加额外的权限。
编辑 - 忘了提及它的新应用程序,因此它使用Requests 2.0和Requests 2.0 Efficient
任何帮助都将不胜感激。
答案 0 :(得分:1)
关于第一个问题。鉴于您没有与未与您交互的用户的用户ID,似乎无法删除发送给他们的请求。这似乎是facebook要求设计中的“漏洞”。
然而,似乎有一项工作来清理请求。当您使用Javascript发送请求时,您可以访问请求发送到的所有用户的user_id:
{
request: ‘request_id’
to:[array of user_ids]
}
您可以缓存该内容,并在一段预定时间后,只删除所有用户的请求。
更新:[2012年1月12日] 此错误已在此处https://developers.facebook.com/bugs/202883726463009
接受并分配更新:错误已被标记为设计
答案 1 :(得分:0)
如果没有确切知道你在做什么,很难知道,但这里有一些可能的解决方案:
首先,您的应用将始终需要删除请求,与旧样式请求不同,应用程序负责在接受请求后清除请求,并且由于用户接受了请求而未自动删除请求 - 这包含在内在这里:https://developers.facebook.com/docs/reference/dialogs/requests/#deleting
您应该能够使用App Access令牌删除您的应用发送的请求,无论您对收件人用户拥有什么权限(尽管根据您上面的说明,您可以使用用户访问令牌你有收件人):
如果您为“高效”请求启用了迁移设置,则DELETE具有格式
DELETE https://graph.facebook.com/[<request_id>_<user_id>]?access_token=[USER or APP ACCESS TOKEN]
如果还没有,则格式为
DELETE https://graph.facebook.com/[request_id]?access_token=[USER OR APP ACCESS_TOKEN]
答案 2 :(得分:0)
1)您可以在用户授权应用后删除该请求。否则你将无法知道谁是被邀请者,因此请求id
2)您似乎正在尝试删除已删除的请求