其他分享
首页 > 其他分享> > android – 使用Facebook App-scoped Id for ProfilePictureView

android – 使用Facebook App-scoped Id for ProfilePictureView

作者:互联网

我正在为Android应用程序实现facebook的SDK.我有一个要填充的ProfilePictureView:

profilePictureView.setProfileId(id)

昨天,如果我使用了配置文件的App-scoped Id(由Graph API返回的那个),它可以工作:这是我拥有的唯一ID,因为显然是违反Facebook政策以获得“真实”ID.

但今天,没有任何修改,它返回一个空图像.我猜他们改变了后端,但如果是这样的话,ProfilePictureView的目的是什么,如果它需要一个反对Facebook的政策的ID?

解决方法:

从2018年3月26日起,所有与手动链接相关的解决方案都不再起作用

请使用以下代码

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;
    }

标签:facebook-sdk-4-0,android,facebook
来源: https://codeday.me/bug/20190929/1832283.html