2

我允许用户向其他用户发送请求,邀请他们使用我的应用程序。

请求发送良好,受邀用户可以找到返回我的应用程序的方式。我遇到的问题是一旦用户返回就删除请求。

首先 - 当用户点击请求时,无论他们是否与我的应用程序交互,我都想删除它。这将涉及向图表上的该对象发送 DELETE:request-id_recipient-id。但是,因为用户可能没有与我的应用程序交互,所以我没有他们的 user_id,所以我不能这样做 - 用户只能自己清理我的请求(不好)。

其次 - 即使用户确实与我的应用程序交互,我也会得到他们的用户 ID 并调用 DELETE request-id_recipient-id 我得到这个响应:

(#200) id 267270596647001 支持的实体(EntAppRequest 类)不能被当前查看者 500****** 看到(EntID: 267270596647001)

这表明请求的接收者无权使用其访问令牌将其删除?这是正确的,因为它对我来说似乎有点倒退。或者这是我需要 manage_requests 扩展权限的情况?这对我来说似乎也很奇怪,因为它会为用户可能拒绝的 Auth 框添加额外的权限。

编辑 - 忘了提及它的新应用程序,因此它使用 Requests 2.0 和 Requests 2.0 Efficient

任何帮助,将不胜感激。

4

3 回答 3

1

关于第一个问题。鉴于您没有未与您的应用交互的用户的用户 ID,似乎无法删除发送给他们的请求。这似乎是 facebook 请求设计中的一个“漏洞”。

但是,似乎有一种解决方法可以清理请求。当您使用 Javascript 发送请求时,您可以访问请求发送到的所有用户的 user_ids:

{
  request: ‘request_id’
  to:[array of user_ids]
}

您可以缓存它,并在某个预定时间段后,删除所有用户的请求。

更新:[2012 年 1 月 12 日] 此错误已在此处接受并分配https://developers.facebook.com/bugs/202883726463009

更新:该错误已被标记为设计使然

于 2011-12-13T10:27:04.013 回答
0

没有确切地看到你在做什么很难知道,但这里有一些可能的解决方案:

首先,您的应用程序将始终需要删除请求,与旧式请求不同,应用程序负责在请求被接受后清除请求,并且不会因为用户接受它们而自动删除 - 此处介绍:https ://developers.facebook.com/docs/reference/dialogs/requests/#deleting

您应该能够使用应用程序访问令牌来删除您的应用程序发送的请求,无论您对接收用户拥有什么权限(尽管根据您上面的描述,您应该可以使用您拥有的用户访问令牌收件人):

如果您为“高效”请求启用了迁移设置,则 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]

于 2011-10-03T16:08:52.280 回答
0

1)一旦用户授权应用程序,您可以删除请求。否则您将无法知道谁是受邀者,因此无法请求 id

2)您似乎正在尝试删除已删除的请求

于 2011-10-05T09:39:36.193 回答