Outlook Custom Web加载项移动应用程序问题:不适用于少数帐户

时间:2019-02-12 08:55:09

标签: outlook-addin office-addins outlook-web-addins

我开发了一个Outlook Web加载项,可以在Outlook本机客户端,移动应用程序和Outlook Web中使用该加载项,将文件上传到SharePoint在线文档库。

  1. 在加载项中,JavaScript调用新的Office.js API getAccessTokenAsync。这告诉Office主机应用程序获取对该加载项的访问令牌。 (此后称为访问令牌,因为在此过程中稍后将其替换为第二个令牌。例如,解码的引导访问令牌的示例。
  2. 如果用户未登录,则Office主机应用程序将打开一个弹出窗口供用户登录。
  3. 如果这是当前用户第一次使用您的加载项,则提示他(她)同意。
  4. Office宿主应用程序从Azure AD v2.0终结点为当前用户请求访问令牌。
  5. Azure AD将引导令牌发送到Office主机应用程序。
  6. Office主机应用程序将访问令牌作为getAccessTokenAsync调用返回的结果对象的一部分发送给外接程序。
  7. 加载项中的JavaScript向与该加载项相同的完全限定域中托管的Web API发出HTTP请求,并且其中包含访问令牌作为授权证明。
  8. 服务器端代码验证传入的访问令牌。
  9. 服务器端代码使用“代表”流获取访问令牌。
  10. Azure AD将访问令牌返回到加载项。
  11. 服务器端代码缓存访问令牌。
  12. 服务器端代码发出请求以交换服务器以获取附件并将​​附件上传到SharePoint。
  13. SharePoint REST API将数据返回到加载项,然后可以将其传递到加载项的UI。
  14. 当访问令牌过期时,服务器端代码可以使用其刷新令牌来获取新的访问令牌。

此加载项可在台式机和Web Outlook中使用,但在使用本机Outlook应用程序的移动设备中无法正常运行。

在移动设备中:对于某些帐户,它是随机工作的,而与设备无关,相同的代码对于其他帐户则不起作用。

我们已经验证了Outlook版本,设备,帐户权限级别,没有看到任何问题。调试时,我们怀疑问题可能在于处理EWS服务器中的文档。在移动Outlook应用程序中,相同代码的附件令牌和ID值与台式机/网络客户端不同。

代码链接: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

0 个答案:

没有答案