【发布时间】:2020-01-17 20:40:14
【问题描述】:
我正在编写 Outlook 加载项,但我遇到了权限问题。当manifest.xml 具有ReadWriteItem 权限时,我可以使用令牌通过c# 后端服务检索消息。当我将条目更改为 ReadWriteMailbox 时,我收到 Unauthorised 响应和相关的错误消息 Access is denied。检查凭据并重试。
我需要额外的权限才能在电子邮件发送后尝试查找它。我读过的文档表明ReadWriteMailbox 是最高权限级别,包括ReadWriteItem 提供的权限。我这里有什么遗漏吗?
用于检索令牌的客户端打字稿:
Office.context.mailbox.getCallbackTokenAsync({isRest: true}, async (result:Office.AsyncResult<string>) => {
if (result.status === Office.AsyncResultStatus.Succeeded) {
const request = {
bearerToken : result.value,
restUrl : Office.context.mailbox.restUrl,
itemId : Office.context.mailbox.convertToRestId(itemId, Office.MailboxEnums.RestVersion.v2_0)
}
await axios.post(MAIL_SERVICE_POLL_URL, request);
}
});
C# 后端:
var outlookClient = _httpClientFactory.CreateClient();
outlookClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", item.BearerToken);
using (var response = await outlookClient.GetAsync($"{item.RestUrl}/v2.0/me/messages/{item.ItemId}?$select=isDraft" ))
{
if (response.IsSuccessStatusCode &&
JsonConvert.DeserializeObject<IsDraftModel>(await response.Content.ReadAsStringAsync()).IsDraft)
{
// response.StatusCode is Forbidden when ReadWriteMailbox
}
}
【问题讨论】:
标签: outlook outlook-addin office-js office-addins