sharepoint usergroup stuttgart - toni pohl - office 365 development news overview
TRANSCRIPT
My Impressions…BUILD: https://shar.es/12O7zP IGNITE: https://shar.es/12OlvC
• Why? What? How? • Authentication• Office 365• Office Apps &
Store
Office Dev Agenda
Click icon to add picture
Office 365 by the numbers
Trillion Emails sent with Office 365
4Million objects in the directory
50Billion attachments
60 Petabytes of data
470
Billion relationships in Office graph
8Million meetings per month
850
Fortune500 companiespurchased Office 365in the last 12 months
80%
http://dev.office.com/devprogram
Developer Program Launch
E-mail Newsletters
Free Developer Subscriptio
n
1 YEAR FREE
Free Training
Free Tools
Webinars
Authenticationfor working with Office 365
> BUILD 2-753, Develop Modern Web Applications with Azure Active Directory, Vittorio Bertocci
https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/
Basics of (Web) Authentication in Azure AD
• Azure AD will NOT issue tokens for unknown apps
• Options:Azure PortalVisual Studio Tools
Registering your app in Azure AD
Protocols – Endpoints in Azure AD
Fabrikam.onmicrosoft.com
SAML
WS-Fed
OAuth-A
OAuth-T
https://msdn.microsoft.com/library/azure/dn151124.aspx
Many possible entry points VS2013 – Update 4+
Create a new ASP.NET project, choose “Organizational Account”
VS2015 Create a new ASP.NET project, choose “Work & School Account” ORRight click on project, choose Configure Azure AD Authentication
Both VS versions, or any other IDEClone sample from
http://github.com/AzureADSamples/<samplename>and follow readme
Using AAD Authentication in Web Apps
• Getting Started (dev.office.com)
• Visual Studio 2013 Update 4
• Office Developer Tools for Visual Studio 2013Last Version is 1.3.41104.1, released 11/12/2014
• Office 365 Developer Subscription
• Visual Studio 2015 now includes identity updates that adds all the auth code required!
What do I need to build an Office 365 web app?
Active Directory Authentication Library (ADAL)“The Windows Azure Authentication Library (ADAL) is a library meant to help developers to take advantage of Active Directory for enabling client apps to access protected resources.”https://msdn.microsoft.com/en-us/library/azure/dn151135.aspx
f.e.: Xamarin Project with ADAL
DemoAuthenticate with VS2015 (RC)
> BUILD 3-728-Integrating Web Apps with Office 365-Todd Baginski, Dorrene Brown
USER PEOPLE
Directory
GROUPS
Azure Active Directory Graph API https://graph.windows.net/contoso.com/usershttps://graph.windows.net/contoso.com/groupshttps://graphexplorer.cloudapp.net
SharePoint User Profilehttps://contoso.sharepoint.com/_api/SP.UserProfiles.PeopleManager/GetMyProperties
Exchange HD Picturehttps://outlook.office365.com/api/v1.0/me/userPhoto
USER PEOPLE
Extended Profile
GROUPS
USER
EMAIL AND
CONVERSATIO
NSEVENTS
Mail, calendar and conversations
GROUPS
Exchange REST API https://outlook.office365.com/api/v1.0/me/Messageshttps://outlook.office365.com/api/v1.0/me/Events
USER FILES
Files
OneDrive for Business/SharePoint Files API https://contoso-my.sharepoint.com/personal/yina_contoso_com/_api/v1.0/fileshttps://contoso.sharepoint.com/sites/designCouncil/_api/v1.0/files
PEOPLE
GROUPS
USER FILES
Office Graph
Office Graph in SharePoint Online https://contoso.sharepoint.com/_api/search/query?Querytext='*'&Properties='GraphQuery:actor(ME,action\:1020,or(action\:1020\,action\:1003,action\:1001,action\:1024,action\:1005,action\:1037,action\:1039,action\:1036)'&SelectProperties='Docid,Title
PEOPLE
Task: Retrieve a user's files, profile picture, and find the manager These information is stored in multiple services-Azure Active Directory, SharePoint, and Exchange-the task, so this involves multiple steps:
1. Authenticate2. Use the Discovery Service to find the various service endpoints 3. Determine the URL of the services your Office 365 apps want
to connect to4. Then acquire and manage the access token for each service
and make the request to the service directlyhttps://msdn.microsoft.com/en-us/office/office365/howto/office-365-unified-api-overview
Example: How to access the Office 365 API?
Office 365 unified API
https://
graph.microsoft.com/
Your App
USERS FILES MAIL CALENDARGROUPS
Insights and relationships from Office Graph
TASKS
Abstraction layerSame• App registration• Permission scopes and security• OAuth2.0 and OpenID Connect
Simpler• Single endpoint• Single access token
Powerful • Get to all data, connections and
relationships
Same platform, just simpler
Get to all data, connections and relationships in Office 365
1. Get a tenant-level entity set:
/user
2. Select a member from the entity set: /user/{id}
3. Get an entity property:/user/{id}/department
4. Traverse to related entity type via navigation properties: /user/{id}/files
Navigating the APIhttps://graph.microsoft.com
//{version}/{tenant}/{entity-set}/{id}/{property}
https://apisandbox.msdn.microsoft.com/
Unified Office 365 API Sandbox Preview
userPhoto
/me
department
mobile
aboutMebirthday
tags
hireDatethumbnailPhotoaddressjobTitlenamealiaspastProjectsresponsibilitiesschoolsskills
USER
GET https://graph.microsoft.com/beta/me
GET https://graph.microsoft.com/beta/contoso.com/users/<id>
GET https://graph.microsoft.com/beta/contoso.com/users/[email protected]?$select=aboutMe
GET https://graph.microsoft.com/beta/me/messages?$top=5&$skip=5&$orderby=DateTimeCreated
GET https://graph.microsoft.com/beta/me/calendarview?startdatetime=2015-04-01t01:00:00z&enddatetime=2015-04-16t23:00:00z
REST Call Samples - 1
GET https://graph.microsoft.com/beta/me/files
GET https://graph.microsoft.com/beta/[email protected]/files
GET https://graph.microsoft.com/beta/me/files/<id>/lastModifiedByUser
GET https://graph.microsoft.com/beta/contoso.com/groups?$filter=groupType+eq+'Unified'
GET https://graph.microsoft.com/beta/contoso.com/groups/<id>/members
GET https://graph.microsoft.com/beta/contoso.com/groups/<id>/conversations
REST Call Samples - 2
TASK
S
TASK
S
trendingAround
trendingAround
directReports
workingWith
workingWith
createdBy
FILE
S
CONVERSATIO
NS
EVENTS
GROUPS
memberOf
directReport
s
Shared with me
modifiedBy
FILE
S
createdBy
directReports
public
EVENTS
MESSAGE
S
manager
GROUPS
memberOf
/tasks & /notes (future)
NOTE
SNOTE
S
TASK
S
TASK
S
GROUPS
memberOf
USER
GET https://graph.microsoft.com/beta/contoso.com/users/[email protected]/workingWith
GET https://graph.microsoft.com/beta/contoso.com/users/[email protected]/trendingAround
GET https://graph.microsoft.com/beta/contoso.com/groups/<id>/tasks
GET https://graph.microsoft.com/beta/me/notes/notebooks
GET https://graph.microsoft.com/beta/contoso.com/users/[email protected]/notes/sections
REST Call Samples - 3
TASK
S
manager
memberOf
FILE
S
MESSAGE
S
workingWith
Shared with me
directReports
createdBy
FILE
S
CONVERSATIO
NS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASK
S
NOTE
SNOTE
S
public
modifiedBy
USERtrendingAroun
d
API
TASK
S
manager
memberOf
FILE
S
MESSAGE
S
workingWith
Shared with me
directReports
createdBy
FILE
S
CONVERSATIO
NS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASK
S
NOTE
SNOTE
S
public
modifiedBy
USERtrendingAroun
d
API
https://graph.microsoft.com/
• Users• Files• Mail• Calendar• Org. Contacts• Groups*• Social Activity*
Supported functionality (Now)• Commercial • OAuth2.0• CORS• CRUD• OData query
operations• Actions and functions• Client libraries .Net,
Android, iOS
TASK
S
manager
memberOf
FILE
S
MESSAGE
S
workingWith
Shared with me
directReports
createdBy
FILE
S
CONVERSATIO
NS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASK
S
NOTE
SNOTE
S
public
modifiedBy
USERtrendingAroun
d
API
https://graph.microsoft.com/beta/$metadata
• Notifications (web hooks*)• Consumer • Instant-on• Personal contacts• Tasks• Notes• Skype• Additional insights and
relationships • Extensibility
Roadmap
* https://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations
https://msdn.microsoft.com/en-us/office/office365/howto/office-365-unified-api-overview
One API to rule them all
• Great developer experience for consuming Microsoft services from a single URL space with a single token.
• Directly navigate between currently siloed Office 365 services.
• Combine the full O365 services and the rich relationships and queries enabled by the Office Graph into a single service.
Office 365 unified API (preview) Summary
• AzureADSamples/WebApp-OpenIDConnect-DotNethttps://github.com/AzureADSamples/WebApp-GraphAPI-DotNet
• OfficeDev/O365-ASPNETMVC-Start https://github.com/OfficeDev/O365-ASPNETMVC-Start
• OfficeDev/PnPhttps://github.com/OfficeDev/PnP
Office 365 Code on GitHub
• Try it NOW!• http://apisandbox.msdn.com/ • https://graphexplorer2.azurewebsites.net/
• Get the client libraries• http://dev.office.com/unifiedAPIs
• Run the sample code• http://dev.office.com/unifiedAPIs
• Read our documentation• http://dev.office.com/unifiedAPIs
Call to action - http://dev.office.com/unifiedAPIs
Office Store OpportunityOver
4 trillion emails sent with O365
100+ million downloads of mobile apps
850 million
meetings are created a month
2–3 hours/day
spent in Office apps1.2
billion+ users
470+ PB
of storage
Office Add-Ins momentum
3 million monthly users
in March
114%+Usersin 6 months
10+ mil daily API calls
7.7 millionlaunches in March
SharePoint add-ins momentum
850,000
monthly users in March
Up 86% in 6 months
500,000
installed
14.1 million launches in March
7.2 million daily API calls
Office Storefacts and figures(April 2015)
Formal launch
Store downloads
Validation time
Submissions per month
Popular:DocuSign
Popular: PicHit.me
Popular: Insightly
Jan. ‘13
9.5M+
>350 1.3/day
Active developers
737
Mail Content Task Pane SharePoint0
200
400
600
800
1000Active add- ins
Total add-ins
1490+
Office-hosted site to tell your story
Professional videos of your customers using your productAdd your white papers, case studies; etc.
Office will promote your add-ins
Links to Store & Office Marketing pagesEmbeds in field sales & marketing
Vertically-focused site: SMB first
Next: EDU
Future: scalable partner modelOffice seeding full cost of first videos
Storytelling videos: Betterwith.Office.com
• Store button on home ribbon, starting w/ Outlook 15 in May; O16 in June
Greater prominence in ribbon
• New platforms: Office for iOS, starting with Excel
• New clients: Outlook.com, Excel Online & Word Online
IMPORTANT: To appear in Office Online and iOS,please update your add-in Manifest to Office.js 1.1
https://technet.microsoft.com/en-us/itmanagement/fp161044(v=office.14)
Your solutions soon discoverable to org customers via App Launcher>My Apps> Store path
Store accessible/prominent in Office 365
Store tile to be added directly to “Waffle” soon after (both features this quarter)
Global expansion: Store fully localized60 Store fronts, 39 supported languages
29 Stores opened in 2015Norway, Sweden, Denmark, Finland
Portugal, Greece, Poland, Hungary
Latvia, Lithuania, Estonia, Finland
Czech Republic, Slovakia, Slovenia
Ukraine and Kazakhstan
Bulgaria, Romania, Serbia, Croatia
Israel and Saudi Arabia
India (Hindi) and South Korea
Vietnam, Thailand, Malaysia, Indonesia11 previous languages supported
• Update manifest to v1.1• Bundeling• Sharepoint Picker• [Hidden Apps: code build15]• [Machine translation service
will come to VS2015]late CY15 / early CY16:• Better usage analytics/telemetry on in-app user
behavior (buttons clicked, etc.)• Add-in bundles & suggestions based on user profiles• More…
My personal Office Store News
• #8 2-758-Making Money with Office 365-Dene Cleaver, Jim Epes• #7 3-728-Integrating Web Apps with Office 365-Todd Baginski,
Dorrene Brown• #6 Ignite 4125-Transforming Your SharePoint Full Trust Code to the
Office App Model-Bob German, Vesa Juvonen, Frank Marasco, Ch• #5 Ignite 2114-Microsoft Office 365 Groups Overview and Roadmap• #4 3-701-Deep Dive into the Office 365 Groups REST API-Yina
Arenas, Rohit Nagarmal• #3 Ignite 3199-Supercharging Your Custom Solutions with the Office
365 Unified API Endpoint-Yina Arenas• #2 Ignite 4117-Get Your Hands Dirty with the Office 365 RESTful
APIs-Robert Howard• #1 753, Develop Modern Web Applications with Azure Active
Directory-Vittorio Bertocci
My Top 10 8 sessions (Office*)
Call to action
Sign up for Developer Programhttp://
dev.office.com
Check out thechannel9 videos
https://channel9.msdn.com
Try it!