Пользовательская веб-надстройка Outlook Проблема с мобильным приложением: не работает для нескольких учетных записей - PullRequest
0 голосов
/ 12 февраля 2019

Я разработал веб-надстройку Outlook, которую можно использовать в собственном клиенте Outlook, мобильном приложении и Outlook Web для загрузки файлов в онлайн-библиотеку документов SharePoint.

  1. В надстройке JavaScript вызывает новый API Office.js getAccessTokenAsync.Это говорит приложению Office Office о необходимости получить токен доступа к надстройке.(Здесь и далее это называется токеном доступа, поскольку он заменяется вторым токеном позднее в процессе. Например, декодированный токен доступа для начальной загрузки.
  2. Если пользователь не вошел в систему, приложение узла Officeоткрывает всплывающее окно для входа в систему пользователя.
  3. Если текущий пользователь впервые использует вашу надстройку, ему или ей будет предложено дать согласие.
  4. Хост-приложение Office запрашивает токен доступа из конечной точки Azure AD v2.0 для текущего пользователя.
  5. Azure AD отправляет маркер начальной загрузки в хост-приложение Office.
  6. Хост-приложение Office отправляеттокен доступа к надстройке как часть объекта результата, возвращаемого вызовом getAccessTokenAsync.
  7. JavaScript в надстройке выполняет HTTP-запрос к веб-API, который размещен в том же полностью определенном домене, что инадстройка и включает токен доступа в качестве подтверждения авторизации.
  8. Код на стороне сервера проверяет входящий токен доступа.
  9. Код на стороне сервера использует поток «от имени» для получения токена доступа.
  10. Azure AD возвращает токен доступа к надстройке.
  11. Кэши кода на стороне серверамаркер доступа.
  12. Серверный код отправляет запросы на сервер обмена для получения вложения и загрузки вложения в SharePoint.
  13. API REST SharePoint возвращает данные в надстройку, которая может передавать ихк пользовательскому интерфейсу надстройки.
  14. Когда срок действия токена доступа истекает, код на стороне сервера может использовать свой токен обновления для получения нового токена доступа.

Эта надстройкаработает на настольном компьютере и в веб-Outlook, но не всегда работает на мобильных устройствах с помощью собственного приложения Outlook.

На мобильном устройстве: оно работает случайным образом для некоторых учетных записей, тогда как один и тот же код не работает для других учетных записей независимо от устройства.

Мы проверили версии Outlook, устройства, уровень разрешений учетной записи и не видим никаких проблем.Во время отладки мы подозревали, что проблема может заключаться в обработке документов с сервера EWS.В мобильном приложении outlook значения токена и идентификатора вложения отличаются от десктопного / веб-клиента для одного и того же кода.

Кодовые ссылки: https://docs.microsoft.com/en-us/outlook/add-ins/get-attachments-of-an-outlook-item

Мы получаем ошибку в приведенном ниже фрагменте кода, на который ссылаются вышеупомянутые ссылки.

ExchangeService service = new ExchangeService(); 
service.Credentials = new OAuthCredentials(request.attachmentToken); 
service.Url = new Uri(request.ewsUrl); 

var getAttachmentsResponse = exchangeService.GetAttachments(attachmentIds.ToArray(),
                             null,
                             new PropertySet(BasePropertySet.FirstClassProperties,
                             ItemSchema.MimeContent));

getAttachmentsResponse.OverallResult returning  ERROR in mobile for particular users
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...