Menu Home

Dissecting the Office 365 App Launcher to Add Your Own Links

The Office 365 App Launcher was introduced in October 2014, with the idea of making it easier for people to navigate to the app they use most.

office365app_launcher
Only problem, it only support links to Azure AD Apps and the Office 365 applications that you have access to. But what if you want to add a link to another site, or an application that is not in the Azure AD? Currently there is no support for that, but I have looked closely at how the myapps page works, in order to do the same for custom links.

The myapps page contains a fair amount of javascript, but for our purpose the interesting aspect is that pinning and unpinning an app to the App Laucher all boils down to a POST request to the following endpoint. (Note you have to be logged in to Office 365, but that shouldn’t be a surprise).

https://outlook.office365.com/owa/service.svc?action=ProcessSuiteStorage

We can call this endpoint to get the currently pinned apps, and also pin new apps.

In order to do so we have to form the POST request with the correct headers and payload.

The required headers for getting the currently pinned apps are:
ContentType: application/json
X-OWA-CANARY: {Canary-Token}
action: ProcessSuiteStorage

I suspect that the {Canary-Token} token is needed to ensure that our request hits an OWA server that have the functionally deployed, as part of a canary release. I haven’t found an reliable way to get this token. The myapps page uses a cross domain iframe to grab it from a cookie on this page:
https://outlook.office365.com/owa/SuiteServiceProxy.aspx?exsvurl=1&realm=office365.com&returnUrl=https%3A%2F%2Fportal.office.com%2Fmyapps
Unfortunately that page is locked down to only accept cross domain calls from other Microsoft owned domains such as office.com, yammer.com and windowsazure.com.

Because of this obstacle I haven’t been able to create a user friendly way to add the links, but I tested that it’s indeed possible, by using the postman chrome extension.
ss_postman_applauncher

The body of there request should look like this:
[javascript]
{"Header":null,"Body":{"ReadSettings":[{"Scope":"User","Namespace":"Suite","Name":"AppsCustomizationDataTEST"},{"Scope":"User","Namespace":"Suite","Name":"AppsAuthenticatedImages"}],"WriteSettings":[]}}
[/javascript]

If you have a correct canary token, you will get a response like this:
[javascript]
{
"Header": {
"ServerVersionInfo": {
"MajorVersion": 15,
"MinorVersion": 1,
"MajorBuildNumber": 49,
"MinorBuildNumber": 19,
"Version": "V2_30"
}
},
"Body": {
"Settings": [
{
"Key": {
"Name": "AppsCustomizationDataTEST",
"Namespace": "Suite",
"Scope": "User"
},
"Value": "{\"Version\":1,\"Timestamp\":\"\\/Date(1420753195260)\\/\",\"PinnedApps\":[{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-outlooklogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Mail%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Mail\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=0\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Outlook\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-calendar\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Calendar%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Calendar\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=1\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Kalender\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-peoplelogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22People%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"People\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=2\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Personer\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-newsfeed\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Newsfeed%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Newsfeed\",\"LaunchFullUrl\":\"https://sjkpdevs-my.sharepoint.com/default.aspx\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Nyhedsstrøm\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-cloud\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Documents%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Documents\",\"LaunchFullUrl\":\"https://sjkpdevs-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllDocuments\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"OneDrive\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-sharepointlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Sites%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Sites\",\"LaunchFullUrl\":\"https://sjkpdevs-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllSites\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Websteder\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-tasks\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Tasks%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Tasks\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=3\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Opgaver\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#2b579a\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-wordlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22WordOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"WordOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=Word\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"Word Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#217346\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-excellogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22ExcelOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"ExcelOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=Excel\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"Excel Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#D24726\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-powerpointlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22PowerPointOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"PowerPointOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=PowerPoint\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"PowerPoint Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#80397B\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-onenotelogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22OneNoteOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"OneNoteOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=OneNote\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"OneNote Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#58595B\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-office365adminlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Admin%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Admin\",\"LaunchFullUrl\":\"https://portal.office.com/admin/default.aspx\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Administrator\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":4,\"BackgroundColor\":null,\"CollectorId\":\"Graph\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":null,\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22Graph%22%2c%22Id%22%3a%22ee04f14a-b2c5-42f8-8cc6-33c896bab0a9%22%2c%22Properties%22%3a%5b%7b%22Key%22%3a%22ServicePrincipalAppId%22%2c%22Value%22%3a%220557254a-b061-4341-95c4-1bb897a02aa2%22%7d%5d%7d\",\"Id\":\"ee04f14a-b2c5-42f8-8cc6-33c896bab0a9\",\"LaunchFullUrl\":\"https://myapps.microsoft.com/signin/O365-WebApp-MultiTenant.Office365App/0557254ab061434195c41bb897a02aa2\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[{\"Key\":\"ServicePrincipalAppId\",\"Value\":\"0557254a-b061-4341-95c4-1bb897a02aa2\"}],\"Publisher\":\"sjkpdevs\",\"TargetWindow\":null,\"Title\":\"O365-WebApp-MultiTenant.Office365App\",\"Size\":2,\"IsNewGroup\":false}],\"PinnedAppsOnNavBar\":[],\"UnpinnedAppIds\":[\"Mail\"]}"
}
]
}
}
[/javascript]

The value property is a collection of all the apps you currently have pinned to the App Launcher.

If you want to pin a new application you create POST request similar to the request for getting the pinned apps, where the body should look like the big javascript sample at the very bottom of this post.

Basically the PinnedApps collection that you got needs to be posted back, but put in the WriteSettings property. If you want to add a new app you should make sure the Id is unique, the LaunchFullUrl can point to any url you like and set the Title to the name of your application and you can provide a custom icon with IconFullUrl.
Here is a sample of the javascript object for one application lives in Azure AD.
[javascript]
var a = {
"CollectorId": "Graph",
"AppType": "4",
"Id": "ee04f14a-b2c5-42f8-8cc6-33c896bab0a9",
"Title": "SIMON",
"ProductId": "00000000-0000-0000-0000-000000000000",
"Publisher": "sjkpdevs",
"IconAnonymousUrl": null,
"FontIconCss": null,
"TargetWindow": null,
"IconFullUrl": "",
"AppDataMinJson": "{\"CollectorId\":\"Graph\",\"Id\":\"ee04f14a-b2c5-42f8-8cc6-33c896bab0a9\",\"Properties\":[{\"Key\":\"ServicePrincipalAppId\",\"Value\":\"0557254a-b061-4341-95c4-1bb897a02aa2\"}]}",
"BackgroundColor": null,
"LaunchFullUrl": "",
"CustomActions": [{
"DisplayName": null,
"NavigateUrl": null,
"ActionVerb": "1"
}, {
"DisplayName": null,
"NavigateUrl": null,
"ActionVerb": "2"
}],
"Properties": ["[ServicePrincipalAppId, 0557254a-b061-4341-95c4-1bb897a02aa2]"],
"Size": 2,
"IsNewGroup": false
}
[/javascript]

Here’s another sample of the Administrator link added by Microsoft
[javascript]
{
"AppType": 0,
"BackgroundColor": "#58595B",
"CollectorId": "FirstParty",
"CustomActions": [{
"ActionVerb": 1,
"DisplayName": null,
"NavigateUrl": null
}, {
"ActionVerb": 2,
"DisplayName": null,
"NavigateUrl": null
}],
"FontIconCss": "wf-o365-office365adminlogo",
"IconAnonymousUrl": null,
"IconFullUrl": "https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22Collec3a%22FirstParty%22%2c%22Id%22%3a%22Admin%22%2c%22Properties%22%3a%5b%5d%7d",
"Id": "Admin",
"LaunchFullUrl": "https://portal.office.com/admin/default.aspx",
"ProductId": "00000000-0000-0000-0000-000000000000",
"Properties": [],
"Publisher": "Microsoft",
"TargetWindow": null,
"Title": "Administrator",
"Size": 2,
"IsNewGroup": false
}
[/javascript]

The full request I tested with on my tenant.
[javascript]
{"Header":null,"Body":{"ReadSettings":[],"WriteSettings":[{"Key":{"Scope":"User","Namespace":"Suite","Name":"AppsCustomizationDataTEST"},"Value":"{\"Version\":1,\"Timestamp\":\"\\/Date(1420749150823)\\/\",\"PinnedApps\":[{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-outlooklogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Mail%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Mail\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=0\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Outlook\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-calendar\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Calendar%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Calendar\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=1\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Kalender\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-peoplelogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22People%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"People\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=2\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Personer\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-newsfeed\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Newsfeed%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Newsfeed\",\"LaunchFullUrl\":\"https://sjkpdevs-my.sharepoint.com/default.aspx\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Nyhedsstrøm\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-cloud\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Documents%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Documents\",\"LaunchFullUrl\":\"https://sjkpdevs-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllDocuments\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"OneDrive\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-sharepointlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Sites%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Sites\",\"LaunchFullUrl\":\"https://sjkpdevs-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllSites\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Websteder\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#0072C6\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-tasks\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Tasks%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Tasks\",\"LaunchFullUrl\":\"https://outlook.office365.com/owa/?realm=sjkpdevs.onmicrosoft.com&exsvurl=1&ll-cc=1030&modurl=3\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Opgaver\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#2b579a\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-wordlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22WordOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"WordOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=Word\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"Word Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#217346\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-excellogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22ExcelOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"ExcelOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=Excel\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"Excel Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#D24726\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-powerpointlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22PowerPointOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"PowerPointOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=PowerPoint\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"PowerPoint Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#80397B\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-onenotelogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22OneNoteOnline%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"OneNoteOnline\",\"LaunchFullUrl\":\"https://portal.office.com/NewSpoDocument?docType=OneNote\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":\"_blank\",\"Title\":\"OneNote Online\",\"Size\":2,\"IsNewGroup\":false},{\"AppType\":0,\"BackgroundColor\":\"#58595B\",\"CollectorId\":\"FirstParty\",\"CustomActions\":[{\"ActionVerb\":1,\"DisplayName\":null,\"NavigateUrl\":null},{\"ActionVerb\":2,\"DisplayName\":null,\"NavigateUrl\":null}],\"FontIconCss\":\"wf-o365-office365adminlogo\",\"IconAnonymousUrl\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22FirstParty%22%2c%22Id%22%3a%22Admin%22%2c%22Properties%22%3a%5b%5d%7d\",\"Id\":\"Admin\",\"LaunchFullUrl\":\"https://portal.office.com/admin/default.aspx\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Properties\":[],\"Publisher\":\"Microsoft\",\"TargetWindow\":null,\"Title\":\"Administrator\",\"Size\":2,\"IsNewGroup\":false},{\"CollectorId\":\"Graph\",\"AppType\":\"4\",\"Id\":\"ee04f14a-b2c5-42f8-8cc6-33c896bab0a9\",\"Title\":\"O365-WebApp-MultiTenant.Office365App\",\"ProductId\":\"00000000-0000-0000-0000-000000000000\",\"Publisher\":\"sjkpdevs\",\"IconAnonymousUrl\":null,\"FontIconCss\":null,\"TargetWindow\":null,\"IconFullUrl\":\"https://portal.office.com/Apps/AppIconHandler.ashx?jsonAppData=%7b%22CollectorId%22%3a%22Graph%22%2c%22Id%22%3a%22ee04f14a-b2c5-42f8-8cc6-33c896bab0a9%22%2c%22Properties%22%3a%5b%7b%22Key%22%3a%22ServicePrincipalAppId%22%2c%22Value%22%3a%220557254a-b061-4341-95c4-1bb897a02aa2%22%7d%5d%7d\",\"AppDataMinJson\":\"{\\\"CollectorId\\\":\\\"Graph\\\",\\\"Id\\\":\\\"ee04f14a-b2c5-42f8-8cc6-33c896bab0a9\\\",\\\"Properties\\\":[{\\\"Key\\\":\\\"ServicePrincipalAppId\\\",\\\"Value\\\":\\\"0557254a-b061-4341-95c4-1bb897a02aa2\\\"}]}\",\"BackgroundColor\":null,\"LaunchFullUrl\":\"https://myapps.microsoft.com/signin/O365-WebApp-MultiTenant.Office365App/0557254ab061434195c41bb897a02aa2\",\"CustomActions\":[{\"DisplayName\":null,\"NavigateUrl\":null,\"ActionVerb\":\"1\"},{\"DisplayName\":null,\"NavigateUrl\":null,\"ActionVerb\":\"2\"}],\"Properties\":[\"[ServicePrincipalAppId, 0557254a-b061-4341-95c4-1bb897a02aa2]\"],\"Size\":2,\"IsNewGroup\":false}],\"PinnedAppsOnNavBar\":[],\"UnpinnedAppIds\":[\"Mail\"]}"}]}}
[/javascript]

Categories: Office SharePoint

Tagged as:

Simon J.K. Pedersen

4 replies

  1. Hi Simon,
    Nice Article .
    I have below Question :

    Embed OWA or a similar Office 365 app in our native app (Java+Html+Jquery) – No Iframe :
    How to embed Office 365 app in our native app (Html + Java + jQuery) passing some parameters.

    For instance, if I have to create a meeting request, to whom should I send the meeting request details will be passed as parameters to OWA or O365 app .

    I found one link https://pod51055.outlook.com/owa/#viewmodel=IComposeCalendarItemViewModelFactory&wid=11&ispopout=1

    I don’t want to use IFrame , I would like to invoke o365 create event in from our app and send recipients list to O365 instead of creation new UI

    Any help with other approaches , it would be appreciated if anyone could let me know.

    Posted question in O365 community also.
    http://community.office365.com/en-us/f/158/t/289726.aspx

    Thanks & Regards,
    Showkath.

  2. Hi Showkath,

    You have a few options as far as I understand your question.
    1) You could add some server side code to your application, (you write java?) and use the office 365 API to create an appoitment/meeting request on behalf of the current user. If you are using Java you have to do a lot of plumbing your self. If you are on a .net platform, you can read more about the Office 365 Outlook calendar rest api here: https://msdn.microsoft.com/office/office365/api/calendar-rest-operations – but it’s way too involved to give you a complete walkthrough on how to do it.

    2) Use the office.js API (the javascript api, designed to work with mail apps etc). I’m not a 100% sure that you will be able to get this to work, outsite the outlook context, but I think it should work. It does require that the user is already signed into office 365 though. I did write an article about that on my blog: http://wp.sjkp.dk/creating-an-outlook-appointment-with-the-javascript-api-for-office-apps/ – Try to create an outlook mail app in Visual Studio 2013 or newer, and try my code from there. Then try to move it to your own application and see if it will work there.

    Kind Regards
    Simon

Leave a Reply

Your email address will not be published.