Advanced Office addin Development with Outlook Andrew Coates

  • Slides: 44
Download presentation

Advanced Office add-in Development with Outlook Andrew Coates – @coatsy DEV 327

Advanced Office add-in Development with Outlook Andrew Coates – @coatsy DEV 327

Agenda Intro to Mail Add-ins Contextual Activation and Rules Office. js API Outlook Compose

Agenda Intro to Mail Add-ins Contextual Activation and Rules Office. js API Outlook Compose Add-ins Outlook Add-in Vision

Developer vision

Developer vision

Office Add-ins <Office. App xsi: type="Mail. App"> <Version>1. 0. 0. 0</Version> <Provider. Name>Salesforce. com</Provider.

Office Add-ins <Office. App xsi: type="Mail. App"> <Version>1. 0. 0. 0</Version> <Provider. Name>Salesforce. com</Provider. Name> <Default. Locale>en-US</Default. Locale> <Display. Name Default. Value=“Salesforce" /> <Capabilities> Office. js § Built with web standards § Office. js provides interop § Hosted centrally § Almost zero client footprint Web runs Server § Runs where Office § Discoverable marketplace <? xml version="1. 0" encoding="UTF-8"? > <Capability Name="Mailbox" /> Browser Control <Desktop. Settings> or i. Frame <Source. Location Default. Value=“https: //salesforce. com/office" /> <Requested. Height>300</Requested. Height> With HTML 5, </Desktop. Settings> <Permissions>Read. Item</Permissions> Java. Script, CSS </Capabilities> <Rule xsi: type="Rule. Collection" Mode="Or"> <Rule xsi: type="Item. Is" Item. Type="Message"/> <Rule xsi: type="Item. Is" Item. Type="Appointment"/> </Rule> </Office. App>

Office Add-ins A new way to build extensions for Office Task Pane Add-in Contextual

Office Add-ins A new way to build extensions for Office Task Pane Add-in Contextual Mail Add-in Content Add-in Command

Mail Add-in Write once, run anywhere Outlook runs Same Mail Add-in runs in Outlook,

Mail Add-in Write once, run anywhere Outlook runs Same Mail Add-in runs in Outlook, OWA and Office mobile clients Development based on activation rules Activation rules run whenever user selects item Activated mail add-ins are added into Outlook UI Designed to be secure Mail apps run in an isolated, sandboxed process Mails apps run with a three-tier permission model Mail Add-ins Require Exchange 2013 or Office 365

Mail Add-ins – Up Close and Personal Add-in Name Mail Add-in Body Context trigger

Mail Add-ins – Up Close and Personal Add-in Name Mail Add-in Body Context trigger

Mail Add-in Hosting Mail Add-ins require Exchange 2013 Exchange Server hosts users mailbox Exchange

Mail Add-in Hosting Mail Add-ins require Exchange 2013 Exchange Server hosts users mailbox Exchange Server hosts app manifest files Web server hosts HTML for Mail Add-in can make callback to Web server Exchange Server • • Hosts mailboxes for users Host Mail Add-in Manifests Web Server • Hosts HTML, CSS and Java. Script

Developing Mail Add-ins Use the Visual Studio project template for Mail Add-ins

Developing Mail Add-ins Use the Visual Studio project template for Mail Add-ins

Steps to Implementing, Testing and Debugging 1. 2. 3. 4. 5. Specify height from

Steps to Implementing, Testing and Debugging 1. 2. 3. 4. 5. Specify height from 32 to 350 pixels Define activation rules Create UI and style with CSS Write Java. Script to add behavior and business logic Debug using Exchange Server and a valid Exchange account Press {F 5} and Visual Studio prompts for server and user mailbox credentials

Creating and Testing a Mail Add-in for Outlook demo

Creating and Testing a Mail Add-in for Outlook demo

Contextual Activation and Rules

Contextual Activation and Rules

Rule-based Activation Mail Add-ins activate based on rules Rules are defined in the manifest

Rule-based Activation Mail Add-ins activate based on rules Rules are defined in the manifest Rules are applied to the selected item in the Explorer or Inspector If conditions are met, the Add-in will be activated and available for use About rules Multiple rules can be combined for complex activation needs Apply logical AND or OR operators Rules can access known entities such as phone numbers Rules can be defined using regular expressions

Activation Rule Types Item. Is A rule that checks the item type (appointment or

Activation Rule Types Item. Is A rule that checks the item type (appointment or message) <Rule xsi: type="Item. Is" Item. Type="Message"> Item. Has. Known. Entity A rule to check if the item has a specific type of known entity <Rule xsi: type="Item. Has. Known. Entity" Entity. Type="Address" />

Activation Rule Types Item. Has. Regular. Expression. Match Defines a rule using a custom

Activation Rule Types Item. Has. Regular. Expression. Match Defines a rule using a custom regular expression to match the contents of an item Rule. Collection Defines a rule composed of multiple rules (combined using AND or OR)

Well-known Entity Examples Outlook is aware of specific types of entities Items are parsed

Well-known Entity Examples Outlook is aware of specific types of entities Items are parsed and scanned for common types of entities Use Item. Has. Known. Entity rules to based activation rules on entities Within add-in use API functions get. Entities or get. Entities. By. Type

Well-known Entity Examples Entity type Recognition condition Address United States street addresses Email. Address

Well-known Entity Examples Entity type Recognition condition Address United States street addresses Email. Address Any SMTP email address Meeting. Suggestion A reference to an event or meeting Contact A personal name related to other entities Phone. Number United States telephone numbers Task. Suggestion Actionable sentences in an email Url A file name or web address 1 Microsoft Way, Redmond, WA 07722 Let’s meet next Tuesday for lunch. Steve Ballmer, Microsoft, 1 Microsoft Way, Redmond, WA 07722 (507) 555 -1212 Please install Office 2013 on my computer.

Office. js API

Office. js API

Accessing the Office. js API for Outlook Add-in API available through mailbox Item can

Accessing the Office. js API for Outlook Add-in API available through mailbox Item can be cast to one of four different types

Single Sign On and EWS get. User. Identity. Token. Async for user validation and

Single Sign On and EWS get. User. Identity. Token. Async for user validation and SSO Exchange and Outlook. com generate a token via get. User. Identity. Token. Async for EWS (body, attachments) Add-in validates token and maps it to known user id

Token { "aud" : "https: //mailhost. contoso. com/Identity. Test. html", "iss" : "00000002 -0000

Token { "aud" : "https: //mailhost. contoso. com/Identity. Test. html", "iss" : "00000002 -0000 -0 ff 1 -ce 00 -000000@mailhost. contoso. com", "nbf" : "1331579055", "exp" : "1331607855", "appctxsender": "00000002 -0000 -0 ff 1 -ce 00 -000000@mailhost. context. com", "isbrowserhostedapp": "true", "appctx" : { "msexchuid" : "53 e 925 fa-76 ba-45 e 1 -be 0 f-4 ef 08 b 59 d 389@mailhost. contoso. com", "version" : "Ex. Id. Tok. V 1", "amurl" : "https: //mailhost. contoso. com: 443/autodiscover/metadata/json/1" } }

Programming an Add-in for Outlook Using Javascript demo

Programming an Add-in for Outlook Using Javascript demo

Compose Add-ins

Compose Add-ins

Compose Add-ins Activation Add-ins can appear in messages and/or appointments Compose add-ins are across

Compose Add-ins Activation Add-ins can appear in messages and/or appointments Compose add-ins are across Desktop, Tablet and Mobile

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments Write to the body R/W appointment properties Custom item properties User Identity Token O 365 API requests Settings User Profile

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments Write to the body R/W appointment properties Custom item properties Get/set/add recipients or attendees Get/set the subject

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments Write to the body R/W appointment properties Custom item properties Add file or item attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments Write to the body R/W appointment properties Custom item properties Prepend to the body Overwrite current selection in body

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments Write to the body R/W appointment properties Custom item properties Get/set start or end time Get/set location Get/set/add attendees

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments

Compose Mail Add-ins capabilities Use core JS APIs Read/Write recipients Read/Write subject Add attachments Write to the body R/W appointment properties Custom item properties Saved on the sent item Can be used to mark a composed message (eg “Tracked” in CRM)

Creating a Translation Compose Mail Add-in demo

Creating a Translation Compose Mail Add-in demo

Outlook Add-in Vision

Outlook Add-in Vision

Outlook Add-in Vision § § Add-ins must feel native and intuitive Leverage UI framework

Outlook Add-in Vision § § Add-ins must feel native and intuitive Leverage UI framework of host client Entry points must scale gracefully Write once, run everywhere

Body Text Highlighting Outlook will highlight regex matches and entities against plain text body

Body Text Highlighting Outlook will highlight regex matches and entities against plain text body Clicked on entity or regex match will be passed into add-in Add-in is loaded in a hover card experience

Add-in Commands (Office 2016) 1 -click way for users to take add-in actions In

Add-in Commands (Office 2016) 1 -click way for users to take add-in actions In Outlook desktop, actions are ribbon buttons and can: Launch task pane Execute a Java. Script function without showing UI Dropdown (menu) with different types of buttons as options [coming later] Support backwards compatibility

Commands UI (Office 2016) Scales with the rest of the ribbon Commands can be

Commands UI (Office 2016) Scales with the rest of the ribbon Commands can be on default tab, or create 1 custom tab Up to 6 buttons per group 1 group on default tab, up to 10 groups on custom tab Commands that don’t launch UI can show status messages on the mail item or appointment

Getting Started with Office add-ins Office add-in Code Samples Office add-in Training videos &

Getting Started with Office add-ins Office add-in Code Samples Office add-in Training videos & hands on labs Office add-in Snack videos Office add-in documentation

http: //dev. office. com/devprogram

http: //dev. office. com/devprogram

St ar t @Office. Dev https: //www. yammer. com/itpronetwork http: //aka. ms/O 365 Dev.

St ar t @Office. Dev https: //www. yammer. com/itpronetwork http: //aka. ms/O 365 Dev. Show http: //dev. office. com/podcasts http: //officespdev. userv oice. com/

My Ignite

My Ignite

Continue your Ignite learning path § A Day in an Office Developer’s Life [PRD

Continue your Ignite learning path § A Day in an Office Developer’s Life [PRD 322] This morning at 9: 45 am. It’ll be on Channel 9 § Word, Excel, Power. Point Add-ins [DEV 326] Just happened. It’ll be on Channel 9 § Outlook Add-ins [DEV 327] This was it. § Windows 10 Development with O 365 APIs [DEV 334] Tomorrow 3: 30 pm – Central A

Advanced Office add-in Development with Outlook Andrew Coates – @coatsy DEV 327

Advanced Office add-in Development with Outlook Andrew Coates – @coatsy DEV 327

© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are

© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.