最近由於工做須要,研究了下Outlook Add-in 和 Graph API。下面帶你們創建一個Hello World 項目css
創建Add-inhtml
先前需求:git
Node.jsgithub
使用cmd/PowerShell安裝最新版本的Yeoman 和Yeoman generator for Office Add-ins npm
npm install -g yo generator-office
創建項目app
使用cmd來訪問新文件夾ide
cd my-outlook-addin
使用Yeoman創建office項目spa
yo office
使用jQuery模板debug
選擇JavaScript3d
命名你的項目
選擇outlook爲建立項目
通過漫長的等待以後CMD裏面顯示項目已經建立好了。
經過cmd 來訪問office add-in 文件夾(注意:這步是必須的,否則等下編譯的時候會報manifest文件丟失的錯誤)
打開visual studio code
在index.html 裏面,用下面的代碼來代替<body>裏面的<header> 和 <main>
<div class="ms-Fabric content-main"> <h1 class="ms-font-xxl">Message properties</h1> <table class="ms-Table ms-Table--selectable"> <thead> <tr> <th>Property</th> <th>Value</th> </tr> </thead> <tbody class="prop-table"/> </table> </div>
打開src/index.js, 用如下代碼來代替index.js
如下代碼有這些功能:
1. 初始化Office
2. 加載當前outlook裏面已經選擇郵件
3. 在table裏面添加當前email的 properties
'use strict'; (function () { // The initialize function must be run each time a new page is loaded Office.initialize = function (reason) { $(document).ready(function () { loadItemProps(Office.context.mailbox.item); }); }; function loadItemProps(item) { // Get the table body element var tbody = $('.prop-table'); // Add a row to the table for each message property tbody.append(makeTableRow("Id", item.itemId)); tbody.append(makeTableRow("Subject", item.subject)); tbody.append(makeTableRow("Message Id", item.internetMessageId)); tbody.append(makeTableRow("From", item.from.displayName + " <" + item.from.emailAddress + ">")); } function makeTableRow(name, value) { return $("<tr><td><strong>" + name + "</strong></td><td class=\"prop-val\"><code>" + value + "</code></td></tr>"); } })();
爲了讓咱們的table更好看一下, 咱們添加一些css到 app.css裏面
html, body { width: 100%; height: 100%; margin: 0; padding: 0; } td.prop-val { word-break: break-all; } .content-main { margin: 10px; }
在咱們編譯以前,咱們還須要設置下manifest.xml文檔
最重要的屬性是SupportUrl。這是咱們debug的地址。
接下來是sideload 咱們的 manifest 到Outlook裏面。
請跟隨這篇文章來部署add-ins
開始編譯調試咱們的outlook add-in
在terminal裏面輸入如下cmd
npm install
在編譯成功以後,咱們能夠打開outlook了
注意,須要用admin來打開outlook。 打開outlook以後,選中sideload相同的郵箱,add-in 已經自動加載了。
若是沒有自動加載, 請打開Store來手動添加
源代碼已經上傳到GitHub