3

我有一个使用 facebook 的 javascript 和 c# sdk 的应用程序。有一天,我error 4 : Application request limit reached.在 facebook 应用程序仪表板中看到了这个。

Too Many Calls  - 1 hour, 50 minutes

Method                         Fraction of Budget
gr:get:User                     115%
gr:get:Post/likes               6.3%
gr:get:User/likes               0.26%
gr:post:Event/attending         0.05%
ui:permissions.request:popup:p  0.01%
ui:feed:iframe:post:            0.01%
gr:get:/schema                  0%
ui:permissions.request:async:g  0%

我假设在 gr:get:User“gr”中表示图形。那么get:User 我想必须仅限于来自 javascript sdk 的调用

FB.api('/me', function (data) { ...

从 javascript sdk 登录用户也会进行相同的get:User调用吗????

 FB.login(function (response) { .......

这些只是添加到 gr:get:User 调用的方法吗?是否可能 get:User 是所有 get:Likes + get:Posts + get:Friends 的总和?这似乎没有意义,因为我们达到了获取用户请求的限制。

我们确实有一些页面在单个页面上最多有 40 个喜欢,现在我们有它(不是一个好方法,并且会改变)我们用来呈现这些喜欢的按钮,并在每个喜欢<fb:Like ...旁边我们采取的行动

        $(function () {
        (function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "https://connect.facebook.net/en_US/all.js#xfbml=1&appId=@ConfigSettings.FacebookAppId";
            fjs.parentNode.insertBefore(js, fjs);
        } (document, 'script', 'facebook-jssdk'));

所以这意味着对于每个like 按钮,facebook 都有一个 ajax 调用,并且目前它正在调用多达 40 次从 facebook 获取 all.js 文件。这些算作 gr:get:User 调用吗?他们可以增加达到限制的呼叫数量吗?

更新

我问我们代码中的哪些调用触发了 gr:get:user 的原因是因为据我所知,它看起来像是一个恶意用户试图重复登录。我只是在寻找确认没有其他图形 api 调用可以添加到 gr:get:User 计数中。

当我们调用从 javascript sdk 登录用户时,您发送的所有内容都是您的应用程序 ID,因此我无法设置不同的访问令牌。一旦用户登录,我们就使用用户身份验证令牌

再次更新

我们得到了error 4 : Application request limit reached.再次,每当任何用户试图从这个应用程序向 facebook 进行任何调用时,都会抛出这个问题。这不是每个(用户,应用程序)错误。任何机构都知道是什么原因造成的或如何预防?

4

1 回答 1

0

基本上你是对的,每个 Like 按钮都会请求用户信息,以显示已经喜欢此页面的朋友。

我认为您可以尝试通过 facebook js sdk 插入 Like 按钮,并且只有在您加载 all.js 脚本之后。在这种情况下,您将避免对 all.js 的额外请求,也将避免对用户信息的额外请求,因为它将被 js sdk 缓存在客户端。

于 2014-05-11T19:14:42.303 回答