Facebook 个人资料图片 Link 更改?

Facebook Profile Picture Link Changes?

Facebook 个人资料图片 link 是否保持最新状态,或者我应该将图像存储在存储器中吗?

我正在使用 firebase 和 facebook 身份验证,并在他们首次创建帐户时像这样抓取用户个人资料图片 link:

const photoLarge = await getFacebookUserInfo().then((userResponse) => {
                return userResponse.picture.data.url.toString()
              }).catch((error) => {
                return error
              });   
            const userId = await firebaseService.auth().currentUser.uid;
            writeUserData(
              userId,
              photoLarge,
            );
          }

出于某种原因,我注意到在开发与生产中我有 2 个不同的 links,开发不工作。

开发不工作:

https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=10161383578450224&height=200&width=200&ext=1558132998&hash=AeTUIkafEn5zw5PF

产品做:

https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=10161383578450224&height=200&width=200&ext=1558673410&hash=AeQGA8guHyxIK9du

我想弄清楚是否应该下载 facebook 图片并将其存储在存储器中,然后改为引用,如果是的话该怎么做? (/ link 上有有效期吗)

我还没有看到 Google 登录是否发生了这种情况。

这是我的图表请求:

//graph QL request to get larger facebook profile
export const getFacebookUserInfo = () => {
  return new Promise((resolve, reject) => {
    const infoRequest = new GraphRequest(
      '/me',
      {
        parameters: {
          fields: {
            string: 'email,about,name,picture.type(large)'
          }
        }
      },
      (error, data) => {
        if (error) {
          reject(error);
        } else {
          resolve(data);
        }
      }
    );
    new GraphRequestManager().addRequest(infoRequest).start();
  })
}

今天我终于想通了。本质上,graphAPI 会吐出几张图片,其中一张是图片。这看起来像我 post 在 https://platform-lookaside.fbsbx.com/platform/profilepic

上面编辑的 link

有变化!!!不确定多久一次,但不要使用它,因为它最终会死掉 link.

但是,我错过的是您可以使用 graphAPI 返回的 ID 并使用以下 link:

http://graph.facebook.com/{your_id_goes_here}/picture?type=large&redirect=true&width=500&height=500

更多信息可以在其他post:

中找到

Get user profile picture by Id