我正在构建一个Android应用程序并已成功集成Facebook登录作为唯一的注册和登录形式。我正在尝试找出获取用户个人资料图片的最佳方式,我已经允许开发人员文档 - https://developers.facebook.com/docs/graph-api/reference/user/picture/,但我不知道如何处理响应,我的意思是我如何实际获取响应中的图像,通过位图或网址链接发送,我不太确定。
以下是文档提供的用于获取个人资料照片的代码
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{user-id}/picture",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
感谢您的帮助
答案 0 :(得分:4)
你必须像Docs那样执行GraphRequest,但这就是你这样做的方式。
在XML布局中使用Facebook的ProfilePictureView
。
XML布局
<com.facebook.login.widget.ProfilePictureView
android:id="@+id/myProfilePic"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"/>
活动/片段代码
ProfilePictureView profilePic = (ProfilePictureView) dialogView.findViewById(R.id.myProfilePic);
GraphRequestAsyncTask request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject user, GraphResponse response) {
if (user != null) {
// set the profile picture using their Facebook ID
profilePic.setProfileId(user.optString("id"));
}
}
}).executeAsync();