Как загрузить фотографию профиля в формате base64 Для пользователей сообщества, использующих ConnectApi.UserProfiles.setPhoto - PullRequest
0 голосов
/ 07 февраля 2019

1 Загружаю фотографию профиля для пользователей сообщества в формате base64 с помощью метода ConnectApi.UserProfiles.setPhoto.Но я получаю "ConnectApi.ConnectApiException: файл, который вы загрузили, не является действительным изображением" Эта ошибка, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 17 февраля 2019

Привет, вы можете попробовать следующий метод:

public PageReference upload() {
    Blob b;
    document.AuthorId = UserInfo.getUserId();
    document.FolderId = UserInfo.getUserId(); // put it in running user's folder
    try {
        document.type = 'jpg';
        document.IsPublic = true;
        insert document;
        // ImageId = '06990000001HnuB';
        b = document.Body;
        //ConnectApi.ChatterUsers newPhoto = new ConnectApi.ChatterUsers();
    } catch (DMLException e) {
        ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR, 'Error uploading file'));
        return null;
    } finally {
        document.body = null; // clears the viewstate
        document = new Document();
    }
    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'File uploaded successfully : ' + b));
    String communityId = null;
    String userId = UserInfo.getUserId();
    //ID fileId = ImageId;
    // Set photo
    ConnectApi.Photo photo = ConnectApi.ChatterUsers.setPhoto(communityId, userId, new ConnectApi.BinaryInput(b, 'image/jpg', 'userImage.jpg'));
    return null;
}
...