Facebook个人资料图片链接更改?

时间:2019-05-24 03:53:28

标签: facebook firebase react-native facebook-graph-api facebook-javascript-sdk

指向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,
            );
          }

出于某种原因,我注意到在开发人员vs产品中,我有2个不同的链接与开发人员不起作用。

Dev不起作用:

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

1 个答案:

答案 0 :(得分:0)

所以我终于终于找到了答案。本质上,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

更多信息可在此其他文章中找到:

Get user profile picture by Id