【问题标题】:Facebook Graph API - How to avoid request limits when accessing a user's photos?Facebook Graph API - 访问用户照片时如何避免请求限制?
【发布时间】:2018-09-12 11:54:33
【问题描述】:

我需要使用 Facebook Graph API 获取用户照片和相册。

据我了解(在阅读文档时),这是一个两步过程,1. 从 photos 边缘获取每张照片的 id,2. 使用返回的 id 数组,获取单个照片节点。

获取单个照片节点可能意味着每秒数百个请求,而我的个人资料中有很多照片,但经过几分钟的测试,我已经达到了应用请求限制。

有没有办法一次获取所有照片(或以更少的请求),以避免请求限制?

示例实现:

  ...

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

      });
    }
  }

  ...

谢谢!

【问题讨论】:

    标签: facebook facebook-graph-api request facebook-javascript-sdk


    【解决方案1】:

    您已经可以通过一次调用获得包含所有字段的列表:

    https://graph.facebook.com/v3.1/me/photos?fields=link,width,height&access_token=...
    

    旁注:如果是客户端代码,为什么不使用官方的 JS SDK?这样,您无需处理访问令牌,它会自动添加。

    【讨论】:

    • 它可以工作,但是我没有在文档中看到photos edge 会直接支持这些字段,但我猜虽然返回的数据是photo nodes 类型,但这些字段仍然可以应用,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多