MEC 2014 11/23/2018 10:42 PM © 2014 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. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Apps for Outlook Evolved 11/23/2018 10:42 PM EXT302 Apps for Outlook Evolved Andrew Salamatov Senior Program Manager Microsoft © 2013 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. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Mail Apps – a brief intro
New extensibility model for Outlook Loosely coupled to client; based on web technologies Appear contextually, based on entities or patterns OneDrive
Key value points Cross platform Loosely coupled with client versions Outlook, Outlook Web App, OWA app for iPad and iPhone Messages and appointments Loosely coupled with client versions Acquired by end-users or admins for entire org
Managing Apps End-users can… Exchange Admins can… Install apps from marketplace (Restricted or ReadItem only) Enable/Disable apps installed by admins Install apps from marketplace or individual manifests from any other location Install apps for entire org or individual users Block users from installing apps Provide other users the ability to install individual manifests from any location
Useful PowerShell Commands //Install a mandatory app for all users New-App –OrganizationApp –Url “https://server.com/manifest.xml” -DefaultStateForUser AlwaysEnabled //Set a marketplace app enabled for some users Get-App –OrganizationApp |fl displayname,AppID Set-App –OrganizationApp –Identity [AppId] –DefaultStateForUser enabled –ProvidedTo specificusers –UserList alias1,alias2,alias3 //List which users have an a specific app installed Get-App –OrganizationApp –Identity [AppId] |fl displayname,userlist //List which apps a user has installed Get-App –mailbox alias1 //Remove an organization app Remove-App –OrganizationApp –Identity [AppId] Documentation on cmdlets can be found here: http://technet.microsoft.com/en-us/library/jj218673(v=exchg.150).aspx
What’s new
What’s new Body and attachment access Commerce Compose End-users can install apps from the store that access message body and attachments Commerce Sell, give away or provide subscriptions for your mail apps Compose Create apps to be used while reading a message or appointment, composing, or both
Body and attachment access
Attachments Demo Andrew Salamatov
Accessing attachments in 2013 RTM App forwards the message to an SMTP endpoint Endpoint parses the message and extracts the attachments App requires highest permission level, admin-installable only mailbox.makeEwsRequest( <XML EWS REQUEST> ); App in Outlook Message forwarded by Exchange Endpoint retrieves attachments
New approach goals End-user apps can access body and attachments Optimize for client bytes over the wire
The design JS APIs to access metadata, token and EWS URL Available with ReadItem permission App requests attachment metadata, callback token and EWS URL via JS APIs APP App Backend Outlook Exchange
The design App code passes metadata + token to its backend Callback token is short-lived, item bound App passes attachment id, token and EWS URL to its backend APP App Backend Outlook Exchange
The design App backend uses EWS to retrieve attachment EWS Managed API support coming soon APP App Backend Outlook App backend calls EWS to get attachment Exchange
A few notes on the callback token Extends concept that apps can read any property on the current item Item and session bound Self-signed by Exchange, bearer token Bound to current item (EWS operations only allowed on item that the app was launched on) “Bound” to session – is valid for 5 minutes Allowed EWS APIs GetAttachments GetItem
Attachments code demo Andrew Salamatov
Saving attachment to SharePoint (O365) Register mail app as a web server app in AAD Users grant permission via OAuth flow Backend will get access token to call into OneDrive
OAuth flow App opens new window to Azure AD to ask for consent SP Grant Consent APP Launch OAuth SP Outlook App Backend
App’s redirect html page OAuth flow Azure AD redirects to the redirect URL, providing access code as query URI parameter Azure AD App’s redirect html page Grant Consent APP Launch OAuth SP Outlook App Backend
App’s redirect html page OAuth flow App extracts access code and passes it to its backend App’s redirect html page APP Launch OAuth SP Outlook App Backend
OAuth flow App backend exchanges access code for refresh token and access token from Azure AD and calls into SP APP 1. Exchange for refresh and access token Azure AD Launch OAuth SP Outlook 2. Call SP with access token App Backend
Code demo Andrew Salamatov
Resources Documentation Related Sessions Accessing attachments from a mail app: http://msdn.microsoft.com/en-us/library/office/dn148008.aspx Creating a WebAPI backend service for a mail app: http://blogs.msdn.com/b/officeapps/archive/2013/06/10/create-a-web-service-for-an-app-for-office-using-the-asp-net-web-api.aspx Directory service: http://msdn.microsoft.com/en-us/library/dn605898(v=office.15).aspx Integrating app with AAD: http://msdn.microsoft.com/en-us/library/windowsazure/dn151122.aspx Related Sessions Website app registration and auth: EXT.301 Building a business process app: EXT.304 Code will be posted to this session in Yammer after the talk
Commerce
Paid Mail Apps Developers can sell mail apps in Office store TechReady 18 11/23/2018 Paid Mail Apps Developers can sell mail apps in Office store Model supports: Trial mode Subscription Individual purchase Entitlement is validated server-side Documentation: http://msdn.microsoft.com/en-us/library/office/jj163908.aspx © 2014 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. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Compose
Compose demo Andrew Salamatov
Compose mail apps Activation Capabilities Permissions
Activation Apps can appear in messages and/or appointments Compose apps are across Desktop, Tablet and Mobile
Compose mail app 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 Make EWS requests Settings User Profile
Compose mail app 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 app 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 app 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 app 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 app 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)
Permissions Restricted ReadItem ReadWriteItem ReadWriteMailbox App can access data from limited entities Regular expressions are blocked JS API limits item data access ReadItem App can access data from all entities Regular expressions allowed Read JS APIs are allowed EWS calls are not allowed ReadWriteItem All JS APIs are allowed ReadWriteMailbox Limited EWS methods are allowed Admins can install End-users can install
Compose code demo Andrew Salamatov
Possibilities…
Scenarios Assist with writing a message Frequently written snippets Multiple signatures Insert meeting location details Hierarchical Address Book Book Workspace Address Book Bob Costas Jane Smith John Doe
Scenarios Template messages and meetings Create a message based on a template Attach an invoice
Scenarios Kick-off workflows Document signing Request approval for marketing campaign Record email conversation for innovation management Newsletter Approval Select documents for approval:
Resources Demo code will be posted to #EXT.302 Yammer discussion directly after the session Documentation available on MSDN http://msdn.microsoft.com/EN-US/library/office/fp161135(v=office.15).aspx Related talks Experts Unplugged: Exchange Extensibility: EXT.UN.301 Experts Unplugged: Outlook 2013: USX.UN.301 Website app registration and auth: EXT.301 Building a business process app: EXT.304
Pre-Release Programs Team Be first in line! Go to the Pre-Release Programs Booth Tell us about your Office 365 environment/or on premises plans Get selected to be in a program Try new features first and give us feedback! Start now at: http://prereleaseprograms-public.sharepoint.com/
11/23/2018 10:42 PM © 2014 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. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2013 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. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.