繁体   English   中英

有没有一种方法可以限制用户每天可以发送某种类型的请求的次数?

[英]Is there a way to limit the number of times per day a user can send a certain type of request?

目前,我正在为每个要发送的Facebook请求在表中创建一行。 然后,每次用户打开FB好友选择器发送请求时,我都会调用一个php文件,该文件请求该表中的信息,并返回他们向其发送请求的所有用户的FB用户ID列表。在过去的24小时内。 我针对用户可以发送的每种请求执行此操作。

我目前遇到的问题是,如果用户发起请求,将其发送给许多人,然后立即再次打开FB好友选择器,则先前请求操作的记录尚未全部添加到我们的内部表。 因此,如果玩家走得足够快,他们可以向同一个FB朋友发送多个请求。

在FB方面是否有办法限制这种行为?或者这完全由开发人员来约束吗? 无论哪种情况,都有建议的方法来实现此行为吗? 谢谢。

更新资料

在我看来,我们的数据库禁止每用户每24小时输入多个请求。 我现在要做的只是简单地允许在FB端发出第二个请求,并且当代码尝试但未能将第二行输入到数据库中时,它会进行FB Graph调用,该调用使用应用程序的auth_token从Facebook本身删除该请求。 这意味着它将在Facebook上接收玩家的请求页面上显示一会儿,但是由于它没有与内部数据库中的行链接,因此用户无论如何都不会通过点击获得任何奖励。

谢谢大家的建议。 @Gil Birman我继续接受了您的回答,因为它完全有效,即使这不是我最终用来解决问题的方法。 谢谢!

有多种方法可以解决您提到的滞后问题,一种方法是在按下JavaScript后立即通过javascript禁用发送请求按钮。 在您的JavaScript代码中,与其立即通过FB.UI显示“发送请求”对话框,不如将JSON请求发送到您的服务器。 仅当服务器响应时,才显示fb发送请求对话框。 另外,服务器发送的响应应包括要排除的朋友列表。 发送fb请求后,您的JavaScript代码应再向服务器发送一个json请求,以指示需要更新数据库中的哪些行。 只有当服务器第二次响应时,才应最终重新启用发送请求按钮。

但是,实际上没有办法限制用户可以发送的请求数。 也就是说,无论您设计javascript / php代码的程度如何,理论上,用户仍然可以通过Javascript控制台调用请求对话框,以完全绕过保护应用程序安全的尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM