Как обновить фотографию профиля пользователя с помощью msgraph-sdk-java? - PullRequest
0 голосов
/ 23 ноября 2018

Вот что у меня есть:

    ProfilePhoto photo = new ProfilePhoto();
    photo.???


    IProfilePhotoRequest request = graphServiceClient.users(userId).photo().buildRequest();
    request.patch(photo, new ICallback<ProfilePhoto>(){
        @Override
        public void success(final ProfilePhoto result) {

        }

        @Override
        public void failure(ClientException e) {

        }
    });

Однако я не знаю, как установить 'Двоичные данные для изображения':

PUT https://graph.microsoft.com/v1.0/me/photo/$value Тип содержимого: изображение / JPEG

Двоичные данные для изображения

1 Ответ

0 голосов
/ 26 ноября 2018

Вам нужно использовать BaseProfilePhotoStreamRequest , но не тот, который в вашем коде.Такая вещь как:

IBaseProfilePhotoStreamRequest request = graphServiceClient.users(userId).photo().getContent().buildRequest();
request.put(imageBytes);

Ссылочный код для получения двоичного изображения:

import java.awt.image.BufferedImage;   
import java.io.ByteArrayInputStream;   
import java.io.ByteArrayOutputStream;   
import java.io.File;   
import java.io.IOException;   

import javax.imageio.ImageIO;   

import sun.misc.BASE64Decoder;   
import sun.misc.BASE64Encoder;   

public class TestImageBinary {   
    static BASE64Encoder encoder = new sun.misc.BASE64Encoder();   
    static BASE64Decoder decoder = new sun.misc.BASE64Decoder();   

    public static void main(String[] args) {   
        System.out.println(getImageBinary());   

        base64StringToImage(getImageBinary());   
    }   

    static String getImageBinary(){   
        File f = new File("c://20090709442.jpg");          
        BufferedImage bi;   
        try {   
            bi = ImageIO.read(f);   
            ByteArrayOutputStream baos = new ByteArrayOutputStream();   
            ImageIO.write(bi, "jpg", baos);   
            byte[] bytes = baos.toByteArray();   

            return encoder.encodeBuffer(bytes).trim();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        return null;   
    }  
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...