【发布时间】:2019-05-24 03:53:27
【问题描述】:
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,
);
}
由于某种原因,我注意到在 dev 与 prod 中我有 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();
})
}
【问题讨论】:
-
用户可以从个人资料中删除或更改他们的个人资料图片。当这种情况发生时,他们的个人资料图片链接可能会被破坏。如果您的存储空间有限,您可以搜索是否有任何方法可以通过用户名获取他们的个人资料图片(它包含在用户个人资料链接中)
-
您始终可以使用仅重定向到真实图片位置的 API 端点 - 即使 CDN URL 更改,它也会自动保持最新。 developers.facebook.com/docs/graph-api/reference/user/picture
-
我写的graphQL请求忘记添加了,但是在上面的代码中添加了。上面添加的代码是否与您提到的相同?
标签: facebook firebase react-native facebook-graph-api facebook-javascript-sdk