我有一个使用 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 进行任何调用时,都会抛出这个问题。这不是每个(用户,应用程序)错误。任何机构都知道是什么原因造成的或如何预防?