Exchange with a custom WOPI Client DEV205 Wictor Wil ID: 828817
Download Pdf The PPT/PDF document "Extending SharePoint, Lync and" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
1 Extending SharePoint, Lync and Exchange
Extending SharePoint, Lync and Exchange with a custom WOPI Client DEV205 Wictor Wilén ïµ Wictor Wilén, MCA, MCSM, MCM, MVP a Connecta AB, Sweden a http://www.connecta.se a http://www.wi
2 ctorwilen.se a wictor@wictorwilen.se a @
ctorwilen.se a wictor@wictorwilen.se a @ wictor a Author of SharePoint 2010 Web Parts in Action and co - author of Inside SharePoint 2013 Takeway from this session ïµ I want you to le
3 arn and understand the WOPI protocol an
arn and understand the WOPI protocol and how it can enhance and extend your SharePoint solutions Agenda ïµ WOPI this and WOPI that ïµ [MS - WOPI] ïµ OpenWOPI ïµ Build a WOPI client a
4 Discovery a Client ïµ SharePoint 2013
Discovery a Client ïµ SharePoint 2013 Extensions Office Web Apps⦠Office Web Apps 2010 ïµ SharePoint 2010 Service Application ïµ SharePoint 2010 only ïµ Not customizable, extendab
5 le and almost never updated ïµ docs.co
le and almost never updated ïµ docs.com ïµ skydrive.live.com Office Web Apps Server 2013 ïµ WAC Server 2013 ïµ Standalone ïµ Shared with SharePoint, Exchange and Lync ïµ Based on t
6 he open [MS - WOPI] protocol [MS - WOPI]
he open [MS - WOPI] protocol [MS - WOPI] ïµ W eb Application O pen P latform I nterface ïµ http://askwictor.com/WOPI ïµ Almost fully documented ïµ No licensing ïµ REST like protoc
7 ol Principles ïµ Security Discovery Cli
ol Principles ïµ Security Discovery Client Server WOPI Client ïµ Provide a Discovery endpoint ïµ Reads information about files and folders ïµ Reads content of files and folders ïµ Wr
8 ites content of files and folders ïµ Of
ites content of files and folders ïµ Office Web Apps 2013 is a WOPI Client WOPI Server/Apps ïµ Reads the WOPI Client Discovery endpoint ïµ Responds to requests from the WOPI Client ï
9 µ Never initiates communication with the
µ Never initiates communication with the WOPI Client ïµ SharePoint, Lync and Exchange 2013 are WOPI Servers Discovery ïµ http[s]://serv;r00; hosting/discovery ïµ HTTP/1.1 GET R
10 equest ïµ - zone a
â
tion
ext
=â
docx
â name=âeditâ
urlsrc
=âÅÅÅâ>
ïµ
-
key
Introducing
OpenWOPI
ïµ
A free and open WOPI Clie
equest ïµ - zone a
11 nt a Including extensions for SharePoint
nt a Including extensions for SharePoint 2013 ïµ Available on Codeplex this week a openwopi.codeplex.com ïµ ASP.NET MVC4 based ïµ ïetâs bïµild it⦠WOPI DISCOVERY Implementing th
12 e WOPI Discovery process in the OpenWOP
e WOPI Discovery process in the OpenWOPI Client Client and Server Communication WOPI Server IFrame : WOPI Client e WOPI Server generates an Access Token and an id for the user and f
13 ile e WOPI Server renders an IFrame us
ile e WOPI Server renders an IFrame using the action urlsrc and standard parameters (GET) [friendly url ] e WOPI Client requests file info (GET) e Passing unmodified Access Token an
14 d id e WOPI Client requests file conten
d id e WOPI Client requests file content (GET) e Passing unmodified Access Token and id e WOPI Client renders document e Other WOPI Operations (GET, POSTâ¦) WOPI Client Requests ïµ Fo
15 ur request types ïµ Must be implemented/<Å>/
wopi
*/
fileid00;s/
a
File
-
level operations
ïµ
http[s
]Å///<Å>/
wopi
*/
fileid0
ur request types ïµ Must be implemented by the WOPI Server ïµ http[s]Å//
16 0;s/contents a Content operations ïµ ht/<Å>/
wopi
*/
folders/
id
a
Folder
-
level operations
ïµ
http[s
]Å///<Å>/
wopi
*/
folders/
id
/childr
0;s/contents a Content operations ïµ http[s ]Å//
17 en a Files and Folders within a folder R
en a Files and Folders within a folder Request and Response details ïµ HTTP Headers a MUST â Authorization a MAY â X - WOPI - ClientVersion â X - WOPI - ServerVersion â X - WOPI -
18 Proof / X - WOPI - ProofOld â X - WOP
Proof / X - WOPI - ProofOld â X - WOPI - CorrelationID â X - WOPI - * â ⦠Access Tokens and security ïµ Access Toketoke;n000;n a Must be present on all Requests as the Aut
19 horization header a Generated by the WOP
horization header a Generated by the WOPI Server a WOPI Client doesnât have to âïµnderstandâ it a Should expire a Should be scoped to a user and a set of resources ïµ File or folde
20 r id id00; a Must be unique ïµ Provi
r id id00; a Must be unique ïµ Provided through the initial action request ( urlsrc ) WOPI Client Security ïµ The Proof Key ïµ Defined in the Discovery message ïµ Not required ïµ
21 Used by Server to decrypt HTTP Headers a
Used by Server to decrypt HTTP Headers a X - WOPI - Proof a X - WOPI - ProofOld ïµ SharePoint always requires this! SENDING WOPI REQUESTS Actions ïµ Scoped to an app ïµ Specifies urlsr
22 c so Server can initiate request ïµ Sp/<Å>/
wopi
*/
fileid00;s/
a
CheckFileInfo
(GET)
a
PutRelativeFile
(POST
c so Server can initiate request ïµ Specifies name (type) and extension File operations ïµ http[s]Å//
23 + X - WOPI - *) a Lock, Unlock, Refres
+ X - WOPI - *) a Lock, Unlock, RefreshLock , UnlockAndRelock (POST + X - WOPI - *) a DeleteFile (POST + X - WOPI - *) a ExecuteCellStorage * (POST + X - WOPI - *) a ReadSecureStore (P
24 OST + X - WOPI - *) a Get/ RevokeRestric/<Å>/
wopi
*/
files/i500;d/contents
a
GetFile
(GET)
a
PutFile
(POST)
RETRIEVING A FILE
Acti
OST + X - WOPI - *) a Get/ RevokeRestrictedLink (POST + X - WOPI - *) ïµ http[s]Å//
25 on values ïµ view ïµ edit ïµ mobilevi
on values ïµ view ïµ edit ïµ mobileview ïµ interactivePreview ïµ embedview ïµ present ïµ formsubmit ïµ formedit ïµ â¦ UPDATING A FILE Integration with SharePoint ïµ Add - SPWOPI
26 Binding ïµ Previews a Document Librarie
Binding ïµ Previews a Document Libraries â JavaScript (undocumented territory) a Search Center â Display Template Exchange and Lync integration ïµ Only allows one WOPI Client ï ï
27 µ Exchange 2013 a PowerShell ïµ Lync 20
µ Exchange 2013 a PowerShell ïµ Lync 2013 a The Topology Builder PREVIEWS FOR REAL IN SHAREPOINT 2013 Summary ïµ [MS - WOPI] is an open specification ïµ Built on the HTTP protocol ïµ
28 You can create custom viewers and edito
You can create custom viewers and editors ïµ OpenWOPI ! a openwopi.codeplex.com Thank you for attending! Yoïµâve been an awesome crowd ! Slides and Open WOPI links at http://askwi