Looking for something?

Office 365 Dev Tip - Getting all Apps from your Tenant App Catalog using the Office 365 (CSOM) API

Here’s another quick-tip when working with Office 365 dev / SharePoint Online CSOM. A lot of people have asked me by e-mail, comments and twitter on how to get information about their apps in their tenants programmatically.

With that, I thought it’d be fun to post another code snippet with details on how to retrieve information about your Apps in your SharePoint Online tenant.

Pre-requisites

In order to run the code in the snippet you should already have:

Office 365 dev – Code snippet

It’s pretty straight forward to pull out information about the apps, as seen in this snippet.

using (ClientContext context = new ClientContext("https://yourdomain-admin.sharepoint.com"))  
{ 
    // Create a new Microsoft.Online.SharePoint.TenantAdministration.Tenant object and reference the client context of your Admin site 
    Tenant tenant = new Tenant(context);
    tenant.Context.Load(tenant);
    tenant.Context.ExecuteQueryRetry();

// If you define an empty string for GetAppInfoByName, you'll get ALL Apps.
    var appCatalogAppInfoCollection = tenant.GetAppInfoByName(string.Empty);
    tenant.Context.Load(appCatalogAppInfoCollection);
    tenant.Context.ExecuteQueryRetry();

    foreach (var app in appCatalogAppInfoCollection)
    {
        Debug.WriteLine("APP: " + app.Name);
        Debug.WriteLine("Source: " + app.Source);
    }
}

Snippet note: You can see I’m using ClientContext.ExecuteQueryRetry() rather then just ClientContext.ExecuteQuery(). This is an extension-method from the Office 365 PnP Core library, which I would urge you to use. In case of your request being throttled by SharePoint Online, this method will retry the action a few times (or as many times as you specify in the method as parameters).

Here’s all the AppInfo properties you can retrieve:

public string Name { get; set; }  
public Guid ProductId { get; set; }  
public AppSource Source { get; set; }  

Enjoy!

0 Comments 27 July 2015
Tobias Zimmergren

Tobias Zimmergren

Hi, I'm Tobias. I am a Microsoft MVP for SharePoint and I use this site to share my thoughts on tech with you on topics like SharePoint, Office 365, Azure and general web development.

  Malmö, Sweden

Related Post

Comments powered by Disqus
res.