none
Is the cloud storage framework in Office 2013 extensible? RRS feed

  • Question

  • We'd like to leverage the cloud storage framework provided in Office 2013 to expose our storage service. 

    Is the Open/Save/Add a storage service framework exposed via APIs?  If so, where are they documented?

    Thanks,


    Tim

    Monday, July 30, 2012 7:56 PM

Answers

  • Hi Tim,

    Are you creating an app for Office that requires this functionality? The JavaScript API for Office currently does not expose document open/save events that you can directly hook into. However, you can build and customize this functionality into the app by using the getAllContentAsync method (currently for Word only). This will enable you to get the current document and process it however you like (e.g. upload it to your own storage service).

    Hope that helps!

    Regards,
    Gareth

    Monday, July 30, 2012 10:09 PM
    Moderator

All replies

  • Hi Tim,

    Are you creating an app for Office that requires this functionality? The JavaScript API for Office currently does not expose document open/save events that you can directly hook into. However, you can build and customize this functionality into the app by using the getAllContentAsync method (currently for Word only). This will enable you to get the current document and process it however you like (e.g. upload it to your own storage service).

    Hope that helps!

    Regards,
    Gareth

    Monday, July 30, 2012 10:09 PM
    Moderator
  • Thanks Gareth.

    We have an existing plugin for Office that allows users to interact with documents on a server document store.  We're looking at Office 15 and investigating whether any of the other integration points make sense.  The 'Add a service - storage' list seemed an obvious point to allow extensions.


    Tim

    Tuesday, July 31, 2012 1:24 PM
  • Yesterday there was a document published by Microsoft which explained the solution for this; "Integrating additional cloud storage services in Office 2013". You can find that document here: http://www.microsoft.com/en-us/download/details.aspx?id=35474

    Wednesday, October 31, 2012 8:51 AM
  • Thats a good start but the doc does not explain how to actual implement the service/provider. What endpoints must it support or is it a local COM Service?
    Monday, November 5, 2012 2:49 PM
  • Phil - the doc states "To integrate with Office 2013, the provider must have its own method for syncing cloud documents from its service to a local folder. This enables Office 2013 users to work on cloud documents even when they are offline or have poor network connections. It also enables users to open and save documents quickly, without the delay of network latency."

    So basically - Office just reads/writes from the folder you define in the registry when you install. Your service then syncs into that folder (both ways)

    So we never call you directly. we interact through the local sync folder. This is pretty much how Dropbox and SkyDrive work.

    Make sense?

    Cheers...pc

    Monday, November 5, 2012 10:41 PM
  • Thats what the docs say, yes. Yet, look at the last page and it displays a "could not log you in" for the sample service. So there is more going on under the hood I suppose. Could you clarifiy, please?

    Also I tried to set the mentioned (non optional) registry keys and watched what winword.exe is querying from this path. What format the icon must be in? And under what circumstances the provider will show up? I could not get it to work.

    The scenario we have is this: We have a Windows Store App and would like to be able to make use of that even when you are in the desktop environment. So I thought we could provide a little inproc COM server that connects to our cloud service from within the Office applications. Skydrive and Flickr seems to be integrated like this into Office. Are those APIs public yet?

    Tuesday, November 6, 2012 9:06 AM
  • The doc is pretty clear that a 48x48 pel icon is expected and that other resolutions can be supplied and will be used if appropriate - can you send a link to your icon file and I'll take a look.

    As to the 'not installed' - I could be wrong but I'm assuming that:

    • The settings have roamed
    • The machine the user has roamed to doesn't have the sync directory set up
    • So we prompt the user to install the sync client, this will create the sync directory...

    I'm going to rip through the docs and add dropbox as a provider just to check that things work - will let you know later today.

    ...pc

    Tuesday, November 6, 2012 4:05 PM
  • Hmm, still working on this - I've set up the keys, have an icon but I'm not seeing what I expect in the list of cloud storage providers - I've reached out to a few other folks and should get back to this thread later today.

    Cheers...pc

    Wednesday, November 7, 2012 5:30 PM
  • Thanks for the effort, Patrick. I appreciate it. Our app users would greatly profit from this feature on the Windows RT devices.
    Wednesday, November 7, 2012 6:12 PM
  • No problem Phil - got this working - my bad was to wrap the provider GUID in {}, registry extract below illustrating how to do this for Dropbox - (note that they are likely to do this themselves at some point (with their own GUID) so time travelers from the future should check with Dropbox before doing this :-):

    Hope this helps!...pc

    Snip the following into a .reg file, change the LocalFolderRoot value before running :-):

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Cloud Storage\AD6B9866-FF21-44A5-A6C6-FF67D8EEDB6B]
    "DisplayName"="Dropbox Cloud Storage"
    "Description"="\"Your life's work, wherever you are.\""
    "LearnMoreURL"="https://www.dropbox.com/tour/1"
    "ManageURL"="https://www.dropbox.com/help/category/Account"
    "LocalFolderRoot"="C:\\Users\\YOUR_LOGON_GOES_HERE\\Dropbox"
    "Url48x48"="http://files.softicons.com/download/application-icons/dropbox-icons-by-vathanx/png/48/Dropbox.png"

    [HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Cloud Storage\AD6B9866-FF21-44A5-A6C6-FF67D8EEDB6B\Thumbnails]
    "Url48x48"="http://files.softicons.com/download/application-icons/dropbox-icons-by-vathanx/png/48/Dropbox.png"
    "Url16x16"="http://files.softicons.com/download/application-icons/dropbox-icons-by-vathanx/png/16/Dropbox.png"
    "Url32x32"="http://files.softicons.com/download/application-icons/dropbox-icons-by-vathanx/png/32/Dropbox.png"

    Thursday, November 8, 2012 1:45 AM
  • Thanks Patrick! I also had the {} in my setup.

    Still, using this simple method will not work to communicate with out Windows Store app (and its local folder). Are there no other, COM based ways to integrate into the new Office2013 storage provider?

    Thursday, November 8, 2012 8:06 AM
  • Phil - hmmm, the local folders used by Windows 8 Store apps are meant to be private to the app (the point being that if the user uninstalls the all it should have no side effects) so if you're trying to connect this as a storage provider you're likely to get into trouble should Windows change the location/acl's etc etc

    You may be better trying to share a classic folder with both - with your Windows Store app managing the sync with the cloud. The user would have to navigate to that folder through the file broker and give your app access (but this is a one time thing once you have the storageFolder object)

    See: http://msdn.microsoft.com/library/windows/apps/BR207885 and sample here: vhttp://code.msdn.microsoft.com/windowsapps/File-picker-sample-9f294cba for handling the file system

    See: http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9 for how to build a cloud/local sync background task in your application.

    Hope this helps...

    Thursday, November 8, 2012 5:12 PM
  • Thanks Patrick. Yes I know about the file broker and how to get an access token to a folder. We might rewrite our concept of how we handle files entirely.

    Currently if the user imports files into our app we store a copy of the file in the apps local folder. We do not move the users files, cause we know everything in the apps folders get deleted when the app is uninstalled.

    But the folder watching capabilities of Store Apps are very crippled (sometimes no notification about changed files in the watched folder) so we did not go down this path. You might check out "doo" at the Store and contact me phil at doo.net if you have additional thoughts.

    One last thing though: How would be "install" this registry keys on a users system? Via PowerShell or any other means? I thought about writing a little .exe that sets the values on a per-user base but 3rd Parties are not allowed to deploy desktop binaries for the Windows RT version (tried even signed exe files with our company cert).

    Thursday, November 8, 2012 5:40 PM
  • Thanks, I'll try doo out for a spin.

    Yes, you've nailed the WinRT catch22 - some things you can only do from a  desktop app (elevated) but you can't install a desktop app on WinRT rinse, repeat..

    In this case I think that these settings will roam for the user once set up on a nonRT device - so that might help the user if they have more then one device. I'll mention this issue to the team who own this area...

    Cheers...pc

    Saturday, November 10, 2012 12:22 AM