[英]Is it possible to handle no profile picture from Facebook and Google login SDK for android?
目前,我正在使用以下方法獲取Facebook和Google個人資料圖片:
谷歌:
private void updateUI(GoogleSignInAccount acct) {
if (acct != null) {
Uri personPhoto = acct.getPhotoUrl();
if (!(Uri.EMPTY.equals(personPhoto)) && personPhoto != null) {
editor.putString("imgUrl", personPhoto.toString());
}
}
Facebook的:
private void facebookLogin() {
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
String userId = object.getString("id");
String imgUrl = "https://graph.facebook.com/" + userId + "/picture?type=large";
} catch (org.json.JSONException e) {
Log.e("", e.getMessage(), e);
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday,first_name, last_name,picture");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Toast.makeText(getApplicationContext(), "failed " + error.toString(),
Toast.LENGTH_LONG).show();
}
});
}
無論如何,使用此方法一切正常,直到用戶實際上沒有個人資料圖片為止。 它不會返回null或我可以處理的東西。
這就是他們在用戶沒有圖片時給出的圖片
Facebook: 圖片
Google: 圖片
Facebook的圖片字段具有is_silhouette
屬性,請參閱https://developers.facebook.com/docs/graph-api/reference/profile-picture-source/
而且Google似乎有一個叫做isDefault
東西,請參閱如何檢查Google User的圖像是默認圖像還是上載的圖像?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.