Dismiss Notice

Register now to be one of the first members of this SharePoint Community! Click here it just takes seconds!

Dismiss Notice
Welcome Guest from Country Flag

Office 365 usage report APIs in preview

Discussion in 'Official Microsoft News' started by Shawn Leonard [MSFT], Sep 14, 2017.

Thread Status:
Not open for further replies.
  1. Shawn Leonard [MSFT]

    Shawn Leonard [MSFT] Guest

    Blog Posts:
    We'll get to configuring and using the Office 365 Usage Reports based on the beta endpoint of the Microsoft Graph API. First let's quickly overview why this is important. On October 1st, 2017 some of the API endpoints for the tried and true Reporting webservice https://msdn.microsoft.com/en-us/library/office/jj984325.aspx will be deprecated. I've grown to depend on this for data modeling and understanding various tenants usage. Our, Microsoft, march towards a unified API has tremendous benefits for the developer and in reality all platforms. Azure AD has truly enabled Microsoft to offer first class development and usability. Enough about that for a moment.

    So what's replacing the Reporting Service endpoints. Surely if the reporting service is being deprecated it has a replacement. That's a bigger conversation but the good news is; you can start building today https://blogs.office.com/en-us/2017/03/31/whats-new-in-office-365-administration-public-preview-of-microsoft-graph-reporting-apis/ I don't want to take screenshots of how to register an application in Azure AD. For the sake of this demo I'll send you to 2 locations.

    1. Azure AD v1.0 Endpoint - Integrating Applications with Azure AD
    2. Azure AD v2.0 Endpoint - Register your app

    For these reports you only need v1.0 "Microsoft Graph > Application Permissions > Read all usage reports" or v2.0 "Application Permissions > Reports.Read.All" For the sample code I'm providing I'll demonstrate the v1.0 registration and application permissions.

    If you aren't familiar with the PinchPerfect.InfrastructureAsCode.Powershell project its a quick way to gather a few sample cmdlets for processing various SharePoint Online activities. Go to my Powershell Readme for a walk through on cloning locally and running. Once you have the Powershell solution cloned locally you can start to debug and run through the Preview Usage API queries. I haven't implemented admin consent; the assumption is that you've done this through the links above. I've taken care of the Authentication Token and Refreshing the token once it's expired. So the core framework is in place for you to extend it. Once you've followed my steps in the Powershell Readme you can debug or run in Powershell the following:

    Extract from sample-preview-and-adoption.ps1

    $graphparms = @{

    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveActivity -ViewType Users -Period D30 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveActivity -ViewType Files -Period D30 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveActivity -ViewType Detail -Date ([System.DateTime]::parse("2017-09-06")) -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveUsage -ViewType Account -Period D30 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveUsage -ViewType Files -Period D30 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveUsage -ViewType Storage -Period D30 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType OneDriveUsage -ViewType Detail -Date ([System.DateTime]::parse("2017-09-06")) -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType SharePointActivity -ViewType Users -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType SharePointActivity -ViewType Pages -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType SharePointActivity -ViewType Files -Period D7 -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType SharePointSiteUsage -ViewType Sites -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType SharePointSiteUsage -ViewType Pages -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType SharePointSiteUsage -ViewType Storage -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType SharePointSiteUsage -ViewType Files -Period D7 -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType EmailActivity -ViewType Activity -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType EmailActivity -ViewType Users -Period D7 -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType Office365GroupsActivity -ViewType Activity -Period D7 -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType Office365ActiveUsers -ViewType Services -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType Office365ActiveUsers -ViewType Users -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType Office365ActiveUsers -ViewType Detail -Date ([System.DateTime]::parse("2017-09-06")) -Verbose

    Report-IaCUsageAnalytics @graphparms -ReportType MailboxUsage -ViewType Mailbox -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType MailboxUsage -ViewType Storage -Period D7 -Verbose
    Report-IaCUsageAnalytics @graphparms -ReportType MailboxUsage -ViewType Quota -Period D7 -Verbose

    This is just the start of this project. My intent is to build the companion Web project with Web API to enable a UI visualization of this data. As of today I extended the ReportVisitor to pump this data into a database. If you are interested in the database and seeing a holistic overview leave a comment. This isn't complete and as the title indicates very much a preview effort.

    Continue reading...
Thread Status:
Not open for further replies.

Share This Page

LiveZilla Live Chat Software