レポート Web サービス クライアント ライブラリ

新しい C# クライアント ライブラリを使用して、Office 365 レポートの OData API (Office 365 レポート Web サービス に付属) のデータをエクスポートするアプリを作成できるようになりました。この記事では、ご使用のアプリにクライアント ライブラリを Visual Studio で追加する方法、およびこの Web サービスを呼び出してデータをエクスポートするために必要なコードについて取り上げます。

最終更新日: 2015年9月17日

適用対象: Office 365

Office 365 レポート Web サービス クライアント ライブラリを使ってみる

レポート Web サービス クライアント ライブラリは、NuGet.org でホストされています。この新しいクライアント ライブラリを使用すると、数分でレポート データのエクスポートを開始できます。以下の 3 つの簡単な手順を実行するだけです。

  1. 新しいプロジェクトを Visual Studio で作成します。

  2. レポート Web サービス クライアント ライブラリを参照できるようにするために、NuGet パッケージをダウンロードします。

  3. この Web サービスを呼び出すコードを作成します。

新しいプロジェクトを Visual Studio 2013 で作成する

コンソール アプリケーションまたは Windows アプリケーションのプロジェクトを C# で作成できます。次の図は、標準的な C# コンソール アプリケーション プロジェクトを示しています。

Visual Studio 2013 におけるコンソール アプリケーション

Visual Studio プロジェクト

NuGet パッケージのダウンロード

次の手順を使用して、NuGet パッケージをダウンロードし、Visutal Studio でレポート Web サービス クライアント ライブラリを参照できるようにします。

NuGet パッケージをダウンロードする

  1. Visual Studio 2013 の [ツール] メニューで [NuGet パッケージ マネージャー] をポイントし、[ソリューション用 NuGet パッケージの管理] をクリックします。

  2. [オンライン] をクリックし、[nuget.org] を選択します。

  3. 検索ボックスに、[ReportingWebServiceClient] と入力します。

  4. [検索結果] 一覧で、[インストール]、[承諾] の順にクリックし、ライセンス条項に同意します。次に、[閉じる] をクリックし、Visual Studio にライブラリをインストールしてプロジェクト内でライブラリへの参照を取得します。

次の画像に示されているように、プロジェクトにはクライアント ライブラリへの参照が一覧表示されます。

ライブラリへの参照が示されているプロジェクト

リファレンス

これで、Web サービスを呼び出し、データをエクスポートする準備が整いました。

Web サービスを呼び出すコードの実行

Visual Studio プロジェクト内の既定のコードを以下のコードに置き換えて、プロジェクトを実行します。

using Microsoft.Office365.ReportingWebServiceClient;
using System;
 
namespace O365ReportingDataExport
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            ReportingContext context = new ReportingContext();
            //If you enter invalid authentication information, Visual Studio will throw an exception.
            context.UserName = @"PUT YOUR OFFICE 365 USER EMAIL ADDRESS HERE";
            context.Password = @"PUT YOUR OFFICE 365 USER PASSWORD HERE";
            //FromDateTime & ToDateTime are optional, default value is DateTime.MinValue if not specified
            context.FromDateTime = DateTime.MinValue;
            context.ToDateTime = DateTime.MinValue;
            context.SetLogger(new CustomConsoleLogger());
 
            IReportVisitor visitor = new CustomConsoleReportVisitor();
 
            ReportingStream stream1 = new ReportingStream(context, "MailboxUsageDetail", "stream1");
            //Calls VisitReport 
            stream1.RetrieveData(visitor);
 
            Console.WriteLine("Press Any Key...");
            Console.ReadKey();
        }
 
        private class CustomConsoleLogger : ITraceLogger
        {
            public void LogError(string message)
            {
                Console.WriteLine(message);
            }
 
            public void LogInformation(string message)
            {
                Console.WriteLine(message);
            }
        }
 
        private class CustomConsoleReportVisitor : IReportVisitor
        {
            public override void VisitBatchReport()
            {
                foreach (ReportObject report in this.reportObjectList)
                {
                    VisitReport(report);
                }
            }
 
            public override void VisitReport(ReportObject record)
            {
                Console.WriteLine("Record: " + record.Date.ToString());
            }
        }
    }
}

現在サポートされているレポート

次の種類のレポートが現在サポートされています。

  • クライアント ソフトウェアのブラウザーの詳細

  • クライアント ソフトウェアの OS の詳細

  • クライアントの種類ごとの接続*

  • グループ アクティビティ*

  • メールボックス アクティビティ*

  • メールボックス使用状況

  • OneDrive for Business のユーザー アクティビティ ログ

  • OneDrive for Business サイトの展開*

  • OneDrive for Business サイトのストレージ*

  • SharePoint Online のアクティブ ユーザー*

  • SharePoint Online のチーム サイトの展開*

  • SharePoint Online のテナント ストレージ メトリックス*

  • 失効したメールボックス

  • 失効したメールボックスの詳細

注意

アスタリスク (*) 付きのレポートの種類は、同じレポートの日次、週次、月次、および年次の集計が別個に提供されていることを示します。これら 4 種類の集計が用意されていないレポートの種類もあります。

このプロジェクトへの投稿

このクライアント ライブラリは、Microsoft 提供の MIT ライセンスによって管理されているオープン ソース プロジェクトです。github で利用できます。投稿をお待ちしています。

フィードバックの送信

質問がおありですか? StackOverflow でお尋ねください。質問には [O365RwsClient] というタグを付けてください。

また、 Yammer における Office 365 技術ネットワークでもチームにお問い合わせください。このライブラリに関するフィードバックを歓迎いたします。

その他の技術情報