1

假设通过 Parse 应用程序,用户 A 向 Facebook 朋友 B 发送邀请以加入他编辑对象 O(例如,参与正在进行的对话)。

B 通过 Facebook 收到了通知,但由于他尚未注册该应用程序,因此还不是 PFUser,因此 A 无法将他添加到 O 的 ACL。

但是,当 B 将来注册时,应该立即授予他对对象 O 的写权限。他不能将自己添加到客户端,因为他没有写权限。因此,这必须在后端实现。

问题:完成以下任务的云代码会是什么样子:

  1. 每当创建新的 PFUser 时,触发检查字符串数组中是否存在特定字符串(即,检查该用户的 facebookID 在 facebookID 字符串数组中是否存在)
  2. 如果找到匹配项,则授予此新用户对 PFObject O 上的 ACL 的写入权限

(我对 java 脚本/云代码没有任何经验,所以示例代码对我开始掌握方向很有帮助。)

谢谢!

4

1 回答 1

2

在 Can Code 中,您可以告诉它使用万能钥匙,这样它就可以绕过正常的限制。

我希望这将是一个多步骤的过程:

  • 用户 A 邀请朋友 B,这将创建一个链接到用户 A、对象 O 的 InvitationToEdit 记录,并包含一些帮助我们识别朋友 B 的内容(facebook ID、电子邮件或一些令牌)
  • 当朋友 B 注册时,该识别信息将用于激活待处理的邀请

云代码可以request.user作为新邀请的朋友访问,并使用标识符。然后它可以搜索所有 InvitationToEdit 记录,并为每个记录添加request.user到对象 O 的 ACL。

许多执行此类操作的系统会生成一个 GUID 作为单个邀请的令牌,并且接受邀请的页面将允许他们登录或注册。完成后,单个令牌将被处理并丢弃。通常代币有某种到期日(例如几天)。

更新:(带链接)

您可以了解如何编写Cloud Code 函数。本质上,这些函数的内容只是 JavaScript,因此有关更新对象的文档以及其他文档都值得一读。

于 2013-08-21T01:04:39.663 回答