Facebook 个人资料图片链接发生变化?

Ste*_*ips 1 facebook facebook-graph-api facebook-javascript-sdk firebase react-native

Facebook 个人资料图片的链接是否保持最新,或者我应该将图像存储在存储中吗?

我正在使用 firebase 和 facebook 身份验证,并在用户首次创建帐户时获取这样的用户个人资料图片链接:

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,
            );
          }
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我注意到在开发与生产中我有两个不同的链接,开发人员无法正常工作。

开发不起作用:

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 图片并将其存储在存储中,然后进行引用,如果是,该怎么做?(/链接是否有过期日期)

我还没有看到 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();
  })
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*ips 6

所以今天我终于明白了这一点。本质上,graphAPI 会返回几个片段,其中一个是图片片段。这看起来像我上面发布的链接https://platform-lookaside.fbsbx.com/platform/profilepic

这改变了!!!不确定多久一次,但不要使用它,因为最终它将成为一个死链接。

但是,我错过的是您可以使用 graphAPI 吐回的 ID 并使用以下链接:

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

更多信息可以在另一篇文章中找到:

根据Id获取用户头像