限制对 Facebook 的通话 graph_url_engagement_count
Limit calls to Facebook graph_url_engagement_count
我收到此错误,“(#613) 对 graph_url_engagement_count 的调用已超过每 3600 秒 10 次调用的速率。”所以我想将对 API 的调用保持在给定 link.
的限制内
注意:每小时 10 次调用的限制仅适用于每个 link。
这是我正在使用的功能:
const getFacebookStats = async (link) => {
try {
const resp = await axios.get(
`https://graph.facebook.com/v12.0/?id=${link}&fields=engagement&access_token=${BEARER_TOKEN_FACEBOOK}`
);
return resp.data.engagement;
} catch (err) {
// Handle Error Here
console.error(err);
}
};
如有任何帮助,我们将不胜感激。
谢谢
使用 LRU 缓存解决了这个问题。
cache.set(link, cache.get(link) == undefined ? 1 : cache.get(link) + 1);
每次将 link 传递给 getFacebookStats 函数时,link 及其计数都会存储在 LRU 缓存中,如果同一个 link 被多次调用,则其计数增加了。
在LRU缓存的设置中,maxAge设置为1小时:
maxAge: 1000 * 60 * 60,
我收到此错误,“(#613) 对 graph_url_engagement_count 的调用已超过每 3600 秒 10 次调用的速率。”所以我想将对 API 的调用保持在给定 link.
的限制内注意:每小时 10 次调用的限制仅适用于每个 link。
这是我正在使用的功能:
const getFacebookStats = async (link) => {
try {
const resp = await axios.get(
`https://graph.facebook.com/v12.0/?id=${link}&fields=engagement&access_token=${BEARER_TOKEN_FACEBOOK}`
);
return resp.data.engagement;
} catch (err) {
// Handle Error Here
console.error(err);
}
};
如有任何帮助,我们将不胜感激。
谢谢
使用 LRU 缓存解决了这个问题。
cache.set(link, cache.get(link) == undefined ? 1 : cache.get(link) + 1);
每次将 link 传递给 getFacebookStats 函数时,link 及其计数都会存储在 LRU 缓存中,如果同一个 link 被多次调用,则其计数增加了。
在LRU缓存的设置中,maxAge设置为1小时:
maxAge: 1000 * 60 * 60,