我正在使用CMS从他们的Facebook URL(即http://facebook.com/users_unique_url)获取用户的个人资料图像.我怎么能做到这一点?是否有一个Faceboook API调用,用于获取用户的配置文件图像URL,而无需用户需要允许该应用程序?
我不知道为什么,但是当我试图获取用户的个人资料图片时,我总是变为空.我是否需要设置一些特定权限才能获得访问权限?
以下是我的方法:
public static Bitmap getFacebookProfilePicture(String userID) throws SocketException, SocketTimeoutException, MalformedURLException, IOException, Exception
{
String imageURL;
Bitmap bitmap = null;
imageURL = "http://graph.facebook.com/"+userID+"/picture?type=large";
InputStream in = (InputStream) new URL(imageURL).getContent();
bitmap = BitmapFactory.decodeStream(in);
return bitmap;
}
Bitmap bitmap = getFacebookProfilePicture(userId);
Run Code Online (Sandbox Code Playgroud)
我变得空了.我不知道原因是什么?任何帮助都很明显.
当尝试从 Facebook 图形 API 或 JavaScript SDK 访问用户个人资料图片时,会返回图片的 url,但在请求时该 URL 不会解析为图片。
JavaScript SDK 返回 404 错误,[链接]

注意:是的,这些个人资料有个人资料图片,我尝试使用多个用户帐户。(我的 Facebook 应用程序尚未上线,但所有配置文件都作为测试人员/开发人员帐户添加到 中
App roles。因此,至少我应该根据此处提到的限制获取剪影个人资料图片。
这些是我尝试过的事情。
FB.api(
'/me',
{ fields: 'id,name,email,picture' },
(response: { name: string; id: string }) => {
console.info(response);
}
);
Run Code Online (Sandbox Code Playgroud)
此 API 调用解析为类似的 URL,https://z-p3-graph.facebook.com/v18.0/me?access_token=并且响应具有图片 URL,但这是行不通的。
{
"id": "122098927370045754",
"name": "John Doe",
"email": "someone@gmail.com",
"picture": {
"data": {
"height": 50,
"is_silhouette": false,
"url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=122098927370045754&height=50&width=50&ext=1702101647&hash=AeQk6_WB4RtEAIyWrwI",
"width": 50
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要通过传递他们的ID来获取任何人的facebook个人资料照片.但我不需要使用facebook API或Graph其他任何东西..我需要给那个id的url ..是否有可能以这种方式获取个人资料图片?我试过谷歌,但我没有得到它.如果有人知道这个,请回复我...
所以 facebook 改变了网站获取用户个人资料图片的方式,所有详细信息都在这里:https :
//developers.facebook.com/docs/graph-api/reference/user/picture/
所以我和SOF 都获得了来自 facebook 的用户是这样的:https :
//graph.facebook.com/1108834579148558/picture?type=large
现在我们得到了 facebook 提供的默认图片。
在他们编写的 facebook 文档中,我们需要附加访问令牌才能从现在开始获取用户个人资料图片,它是如何工作的?
我能想到的唯一一件事是在用户登录时 facebook 可以检索用户个人资料图片,有没有人可以帮助解决这个问题,我正在使用 .Net 核心。
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)'
}
} …Run Code Online (Sandbox Code Playgroud) facebook facebook-graph-api facebook-javascript-sdk firebase react-native
facebook ×5
.net-core ×1
android ×1
asp.net-core ×1
firebase ×1
php ×1
profile ×1
react-native ×1