限制对Facebook graph_url_engagement_count的调用



我收到这个错误,"(#613(对graph_url_engagement_count的调用已超过每3600秒10次调用的速率"因此,我希望将对API的调用保持在给定链接的限制范围内。

注意:每小时10个电话的限制仅适用于每个链接。

这是我正在使用的功能:

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);

每次将链接传递到getFacebookStats函数时,链接及其计数都存储在LRU缓存中,如果同一链接被多次调用,则其计数会增加。

在LRU缓存的设置中,maxAge设置为1小时:

maxAge: 1000 * 60 * 60,

最新更新