3

据我了解,facebook API 的速率限制约为每 600 秒 600 次调用,每个令牌和 IP。现在我有一个网站/facebook-app,允许用户浏览公共夜总会页面和事件,不需要用户登录来浏览页面,所以我使用我的应用程序令牌。但是为了让用户能够在我的网站/应用程序上使用他们的帐户与 facebook 图表交互的功能,他们必须登录,所以我使用用户令牌。

因此,当用户登录时,超过速率限制应该不会有问题,因为每个用户将拥有不同的用户令牌,因此每个用户的速率限制为每 600 秒 600 次调用。但我担心的是,当用户在未登录时浏览公共夜总会页面和事件时,我的应用程序将超过速率限制,因为只有 1 个应用程序令牌和 1 个 IP 地址(我的服务器)用于多个用户。如果有多个用户同时浏览公共夜总会页面和活动,那么很容易超过速率限制。

我做了一些研究,发现我可以从客户端进行 API 调用,这样每个浏览公共夜总会页面和事件的用户都会有不同的 IP 地址(用户计算机),所以每个用户都会每 600 秒的速率限制为 600 次调用。但是,如果我从客户端进行 API 调用,那么我的应用程序令牌和应用程序机密对用户来说是可见的吗?这会带来安全风险吗?谁能验证这是否正确?当用户浏览公共夜总会页面和活动时,我可以做些什么来不超过速率限制?提前致谢。

4

1 回答 1

1

从客户端进行调用时,您不提供应用程序密码,只提供应用程序 ID,客户端无论如何都可以看到,因为它们已登录到您的应用程序。您应用的 Facebook cookie 包含您的应用 ID。每个客户都有自己的令牌,他们也可以看到。

我不确定“浏览夜总会页面”在技术上意味着什么,但如果您可以使用 JavaScript 将服务器工作卸载到客户端,那就更好了。此外,在服务器端对用户进行身份验证时,尽量不要在每个页面请求上调用 $facebook->getUser() ,因为这会影响您的 API 限制。如果可能,请尝试使用 JavaScript 登录客户端,如果不使用 FB 服务器端将它们登录一次,然后设置您自己的会话以从那时起通过您的站点对它们进行身份验证。这将极大地减少您的 API 调用。

请参阅此问题:具有最少 api 调用的 facebook 应用程序的结构

于 2013-04-26T07:24:46.553 回答