В настоящее время я разрабатываю угловую надстройку для Outlook, и часть функций для этой надстройки требует, чтобы моя удаленная служба получала вложения электронной почты из Outlook.
Я подписан на эта ссылка на Документы здесь в отношении моей функциональности.
Так что в настоящее время я могу получить attachmentToken через Office.js в своем угловом коде и передать его вместе с ExchangeWebServiceURL моей удаленной службе:
Office.context.mailbox.getCallbackTokenAsync((result) => {
if (result.status === Office.AsyncResultStatus.Succeeded) {
this.outlookServiceRequest.attachmentToken = result.value;
}
});
Однако, как только я попал сюда:
ExchangeService exchangeService = new ExchangeService();
exchangeService.Url = new Uri(attachmentsRequest.exchangeWebServiceUrl);
exchangeService.Credentials = new OAuthCredentials(attachmentsRequest.attachmentToken);
var attachmentIds = new List<string>();
foreach (OutlookAttachmentDetails attachment in attachmentsRequest.AttachmentArray)
{
attachmentIds.Add(attachment.id);
}
var attachmentResponses = exchangeService.GetAttachments(attachmentIds.ToArray(), null, new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent));
Процесс завершится неудачно при вызове GetAttachments со ссылкой на 401 несанкционированную ошибку из ExchangeWebServiceUrl.
У меня естьогляделся, но не увидел никого, кто сталкивался с этой проблемой;Я установил разрешения в манифесте для моей надстройки для ReadWriteMailbox, однако проблема все еще возникает.
Я пробовал это, запустив его на клиенте Office для настольных ПК и в Chrome, используя версию веб-браузера дляOutlook, но получаю ту же проблему.
Кто-нибудь сталкивался с этим раньше?
РЕДАКТИРОВАТЬ: я должен отметить, что я могу получить доступ к веб-службе Exchange, если я установил учетные данные на
exchangeService.Credentials = new WebCredentials("myUsername", "MyPassword");
Так что, похоже, что-то с токеном обратного вызова.
Декодированный токен возвращает следующее:
{"nameid": "641fdcd4-10dd-4441-ac93-41f519e4ad41@venom.local ",
" ver ":" Exchange.Callback.V1 "," appctxsender ":" https://localhost:44364/AddinClient@venom.local", "appctx": "{\" smtp \ ": \"MyEmail \", \ "Объем \": \ "ParentItemId: AAMkAGY3N2QyYzI2LWRhZTUtNGU3My05MzFmLTYwZGZhZmYyN2QzOQBGAAAAAAAdJ5 + qR8pATpmqkddPNb2NBwBgP9yTrGVtSIiRWRnnYVBWAAAAAAEMAABgP9yTrGVtSIiRWRnnYVBWAAA5fvGXAAA = \"} " "ISS": "00000002-0000-0ff1-ce00-000000000000@venom.local", "ауд":" 00000002-0000-0ff1-ce00-000000000000/outlook.myemailonline.co.uk@venom.local "," exp ": 1546249394," nbf ": 1546249094}
Ошибка, которую я получаю при попыткевызов метода GetAttachments:
Запрос не выполнен.Удаленный сервер возвратил ошибку: (401) Несанкционированный
Мой EWS маркер из обратного вызова:
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6InZDcjV1QmxZTmlXZk9udC1iQlFxVXhXYXBaRSJ9..boWZO1RJ5FWAxvh0RHek8ebW_j8mbR2ODpSUry0VDeAM6iq2aVYfg_mMUk2kPA4MNCmngJNUv02sAKA82ULlKWevmAo-i2j3AYNjVpmIwBhovaX64SozC0lLSoqC-advp8NsjN0rxV7jn65SD6PP7HE2p-Kc9cDMB9aHpgQY-eUGxkU-dfFvQiAMClPe_eXspW1hUil7prx0wMWUl9fJbsFQgPQMr4dQkYKuCk7DUA3Ih8l_yl1qtySJjrlnrR6EpYlazJQ6sO5V5eb-CMGlcjERyR0UByLwakQpZixnKeu1bs5gs2AYpfOozhFHXvlVCbTxUWlybEWnAbob_bbEaQ "
1045 *