Facebook Graph API - 如何在访问用户照片时避免请求限制?
Facebook Graph API - How to avoid request limits when accessing a user's photos?
我需要使用 Facebook Graph 获取用户照片和相册 API。
据我所知(在阅读文档时)这是一个两步过程,1. 从 photos
边缘获取每张照片的 ID,2. 使用返回的 ID 数组,获取个人照片节点。
获取单个照片节点可能意味着数百个 requests/s,而我的个人资料上有很多照片,经过几分钟的测试后我已经达到了应用程序请求限制。
有没有办法一次获取所有照片(或在更少的请求中),以避免请求限制?
示例实现:
...
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?这样,您就不需要处理访问令牌,它会自动添加。
我需要使用 Facebook Graph 获取用户照片和相册 API。
据我所知(在阅读文档时)这是一个两步过程,1. 从 photos
边缘获取每张照片的 ID,2. 使用返回的 ID 数组,获取个人照片节点。
获取单个照片节点可能意味着数百个 requests/s,而我的个人资料上有很多照片,经过几分钟的测试后我已经达到了应用程序请求限制。
有没有办法一次获取所有照片(或在更少的请求中),以避免请求限制?
示例实现:
...
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?这样,您就不需要处理访问令牌,它会自动添加。