Office 365 Addin ESC POC

project bootstrap

Demo项目是通过VS2019自带的Addin模板生成。默认debug模式部署在一个o365 dev tenant上。目前已有Github demo项目也可以直接下载,相关链接

Demo 项目原型简述

引入demo项目是一个查看邮件各种属性的ESCPOC项目,在读取一封邮件时,可以点击ESCPOC按钮查看邮件的属性。在启动debug并上传manifest后,点击Ribbon上的MyAddinGroup按钮,显示如下图所示:

ESCPOCDemo

我们的目标POC项目是一个非常简单的发送弹框程序,需要订阅每一封邮件的发送事件itemsend并且根据Web API调用结果显示一个web UI.

ESCPOC.xml 修改剖析

Manifest文件是O365插件加载的关键配置,需要完全符合schema定义的规则才能正确显式UI以及相应的回调API。

  1. Validation
    Manifest 文件具有很强的格式要求,需要运用微软提供的工具对自己的manifest文件进行语法检查。
1
2
3
#install latest version
npm install -g office-addin-manifest
office-addin-manifest validate PATH_MANIFEST_FILE
  1. 创建ItemSend相关配置
    目前微软已经有开源的示例代码于https://github.com/OfficeDev/outlook-add-in-command-demo,可以作为参考。
    1
    <Event Type="ItemSend" FunctionExecution="synchronous" FunctionName="itemSendHandler" /> 

注意配置上下文需要在VersionOverrides 1.1框架下。

O365 环境准备

对于跨平台的O365 Addin,一个合法的O365账号是需要的,而且需要拥有上传插件的权限。在用用MSDN订阅的情况下,可以创建合适的E3等级Office Tenant。例如本文则使用huangsun@sunnyhll.onmicrosoft.com作为测试账号,密码为系统密码。

Web Addin查看可以点击Outlook桌面客户端的Manage Addin按钮,也可以在https://outlook.office365.com/owa/?path=/options/manageapps 链接中看到。可以看到即使安装了很多插件,这些插件却不是实时安装在本地Outlook桌面客户端上的, 而是在需要访问的时候才进行加载执行的。

开启ItemSend事件监听

相关链接.

“My Custom Roles”权限

对于个人O365账号,这里不需要进行权限获取,Microsoft Tenant默认每个客户的SideLoad权限开启。

Web Addin部署

对于Outlook Web Addin, 主要分成两部分部署:

  • Manifest配置文件部署,在Exchange Mailbox 上注册插件
  • 插件服务部署,必须采用https协议,插件服务前后端本身需要在同一域名下。
    部署完成即可进行测试。

Excel Addin原型

Excel Addin属于Office Addin一部分,example link: https://github.com/OfficeDev/Office-Add-in-samples/