我收到这个错误,"(#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,