Android - get facebook profile picture

后端 未结 28 2394
花落未央
花落未央 2020-12-12 15:13

I don\'t know why, but I am always getting null when I try to get the profile picture of the user. Do I need to set some specific permissions to get access?

Below is

28条回答
  •  孤街浪徒
    2020-12-12 15:42

    NOTE: From 26 Mar 2018, all solutions related to manual link don't work anymore

    You should follow the official guide here

    private static String FACEBOOK_FIELD_PROFILE_IMAGE = "picture.type(large)";
        private static String FACEBOOK_FIELDS = "fields";
    
        private void getFacebookData() {
            GraphRequest request = GraphRequest.newMeRequest(
                    AccessToken.getCurrentAccessToken(),
                    (object, response) -> {
                        updateAvatar(getImageUrl(response));
                    });
            Bundle parameters = new Bundle();
            parameters.putString(FACEBOOK_FIELDS, FACEBOOK_FIELD_PROFILE_IMAGE);
            request.setParameters(parameters);
            request.executeAsync();
        }
    
        private static String FACEBOOK_FIELD_PICTURE = "picture";
        private static String FACEBOOK_FIELD_DATA = "data";
        private static String FACEBOOK_FIELD_URL = "url";
        private String getImageUrl(GraphResponse response) {
            String url = null;
            try {
                url = response.getJSONObject()
                        .getJSONObject(FACEBOOK_FIELD_PICTURE)
                        .getJSONObject(FACEBOOK_FIELD_DATA)
                        .getString(FACEBOOK_FIELD_URL);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return url;
        }
    

提交回复
热议问题