Невозможно получить MIME-версию сообщения с помощью $ value

Я не могу получить MIME для сообщения, используя $value, как указано в документации. Как получить MIME?

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .header("Authorization", "Bearer " + accessToken)
  .url("https://graph.microsoft.com/v1.0/me/messages/k4ZDQ5LTgzMTYtNGZhYS04ZTU3LWZhMjFmZmUzNmE1YwBGAAAAAABzUENX1K4kR6h6KAAA7ENoUb5BySZFX6KemUxNwAAAv_a5nAAA=/?value")
  .build();
Response response = null;
String body;
try {
  response = client.newCall(request).execute();
  body = response.body().string();

person User1290    schedule 02.01.2020    source источник


Ответы (1)


Ваши URL-адреса неверны, они используют /?value, но должны использовать /$value ($ не ?). $value является частью пути, а не параметром запроса:

https://graph.microsoft.com/v1.0/me/messages/4aade2547798441eab5188a7a2436bc1/$value
person Marc LaFleur    schedule 02.01.2020
comment
Да, это сработало, но в случае использования настраиваемого URL-адреса graphClient он дает исключение java.io.BufferedInputStream не может быть преобразован в com.google.gson.JsonObject - person User1290; 03.01.2020
comment
JsonObject obj = graphClient.customRequest (/ me / messages / m-ID / $ value) .buildRequest () .get (); Этот запрос возвращает bufferedInputStream, но его нельзя сохранить в BufferedInputStream, он дает ошибку времени компиляции, если мы это делаем. Его можно сохранить только в JsonObject. Что нам делать? - person User1290; 03.01.2020
comment
Попробуйте закодировать его как %24value - person Marc LaFleur; 03.01.2020
comment
Я получаю значение класса Object, а затем набираю его в BufferedInputStream. Это сработало. - person User1290; 04.01.2020
comment
Я получаю значение класса Object, а затем набираю его в BufferedInputStream. Это сработало. Но мой graphClient проработал всего 60 минут. Я предполагаю, что срок действия токена доступа истек. Как получить токен обновления в java SDK - person User1290; 04.01.2020
comment
Время жизни токена обычно составляет час. Документацию по получению и обновлению токенов можно найти на странице docs.microsoft.com/en- us / graph / auth - person Marc LaFleur; 06.01.2020
comment
Java IAuthenticationResult не предоставляет метод для получения токена обновления. Во время отладки я обнаружил, что в результате есть токен обновления, но нет никакого способа его получить. Также, если мы получим токен обновления, как использовать его в java SDK для повторной инициализации GraphClient. - person User1290; 07.01.2020
comment
Сам SDK на самом деле не поддерживает аутентификацию. Механизм по умолчанию (ImplicitMSALAuthenticationProvider) использует MSAL. Поскольку неявное предоставление не поддерживает обновление, вам, вероятно, потребуется реализовать настраиваемый поставщик аутентификации. Это задокументировано на странице github.com/microsoftgraph/msgraph- sdk-javascript / blob / dev / docs / - person Marc LaFleur; 07.01.2020
comment
Допустим, у меня есть объект IGraphServiceClient. Теперь срок действия используемого в нем токена истекает. Я хочу предоставить новый токен IGRaphServiceClient. Как нам это сделать? Есть ли другой подход, кроме повторной инициализации объекта. Мы здесь разрешения приложений - person User1290; 04.04.2020