facebook - Facebook Graph API - 访问用户照片时如何避免请求限制?
问题描述
我需要使用 Facebook Graph API 获取用户照片和相册。
据我了解(在阅读文档时),这是一个两步过程,1.从photos
边缘获取每张照片的 id,2.使用返回的 ids 数组,获取单个照片节点。
获取单个照片节点可能意味着数百个请求/秒,而我的个人资料中有很多照片,经过几分钟的测试,我已经达到了应用程序请求限制。
是否有一种方法可以一次(或以更少的请求)获取所有照片,以避免请求限制?
示例实现:
...
var photos = [];
function fetchPhotos(){
fetch('https://graph.facebook.com/v3.1/me/photos?type=uploaded&access_token=' + accesstoken, {
method: 'GET'
})
.then(photos => photos.json())
.catch(error => console.error('Error:', error))
.then(photos => {
this.fetchPhoto(photos);
});
}
function fetchPhoto(photos){
for(var i=0; i < photos.data.length; i++){
fetch('https://graph.facebook.com/v3.1/' + photos.data[i].id + '?fields=link,width,height&access_token=' + accesstoken, {
method: 'GET'
})
.then(photo => photo.json())
.catch(error => console.error('Error:', error))
.then(photo => {
photos.push(photo);
});
}
}
...
谢谢!
解决方案
您已经可以通过一次调用获得包含所有字段的列表:
https://graph.facebook.com/v3.1/me/photos?fields=link,width,height&access_token=...
旁注:如果那是客户端代码,为什么不使用官方的 JS SDK?这样,您不需要处理访问令牌,它会自动添加。
推荐阅读
- python - 我应该在哪里实施我的碰撞检查方法?
- ios - 警卫让字典解包失败
- python - 使用 Xarray 的 apply_ufunc 在 3D 数组的时间维度上应用 Numba guvectorize 函数
- excel - Laravel excel 导出到预制模板 maatwebsite/Laravel-Excel
- sql - 控制台注销时获取空白数组导致nodejs mysql
- jquery - 查找 TR 内的所有 TD 元素并使用 jquery 应用背景颜色
- google-cloud-debugger - 如何通过 Django 在 Cloud Run 上使用 Google Cloud Debugger
- html - 无法将我的幻灯片菜单添加到我的主文件 css/html
- c++ - PCL MLS-Processing:无输出点云
- ios - 如何在 swift 5 中检查多个字符串不是 nil 并且不是空的?