指向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();
})
}
答案 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
更多信息可在此其他文章中找到: