OneNote の開発

適用対象: OneDrive のコンシューマー ノートブック | Office 365 のエンタープライズ ノートブック

OneNote は、オンラインで使用でき、かつ多くのモバイルおよびタブレット プラットフォームで使用できる人気の高いノート作成ツールです。普段使用しているアプリを OneNote と統合することによって、これまで以上に簡単に、お気に入りのプラットフォームで利用できる非常に便利なアプリを構築し、世界中の数百万人のユーザーに利用してもらうことができるようになりました。

OneNote ページのサンプル。

OneNote のノートブック、セクション、ページ階層、簡単に使用できる API を活用して、ユーザーは計画を立てたり、アイデアや情報を整理したりできます。

注意

OneNote APIを使用すると、Microsoft API の利用規約に同意したことになります。

プラットフォームの概要

OneNote サービスは Microsoft のクラウドで実行され、OneNote コンテンツへのプログラムでのアクセスを可能にする RESTful インターフェイスが提供されます。 OneNote APIは軽量でシンプル—JSON、HTML、およびODataで構築されているので、HTTP要求をサポートするどの言語もしくはプラットフォームでも利用できます。

次に、OneNote API 開発スタックを簡単に図示します。

さまざまなプラットフォームでの OneNote アプリの開発スタック。アプリは OAuth 2.0 を使用して OneNote コンテンツにアクセスします。

最初に、ユーザーは認証され、アプリへのアクセスを許可される必要があります。OneNote コンテンツとの対話に使用するアクセス トークンを取得します。この API では、OneNote リソースの CRUD サポートに加えて、光学式文字認識 (OCR)、フルテキスト検索、名刺の抽出などの機能も提供します。

ヒント

SDK を使用して認証プロセスを簡略化できます。

OneNote API の使用

OneNote API を使用するには、OneNote のサービス ルート URL の特定のエンドポイントに HTTP 要求を送信します。

https://www.onenote.com/api/{version}/{location}/notes/...

OneNote API を使用して、個人のページ、サイト、グループ ノートブックの作成、表示、管理などを行えます。API のしくみを理解していただくために、現在のユーザーの既定のノートブックにページを作成する簡単な POST 要求を次に示します。

POST https://www.onenote.com/api/v1.0/me/notes/pages

Authorization: Bearer {token}
Content-Type: text/html; charset=utf-8
Accept: application/json
 ...

<!DOCTYPE html>
<html>
    <head>
    <title>My new OneNote page</title>
    <meta name="created" content="2015-09-9T12:45:00.000-8:00"/>
    </head>
    <body>
        <p>This is a simple HTML page.</p>
    </body>
</html>

成功した場合、要求は次の応答を返します—この場合、新しいページの OData 表記は JSON 形式です。

HTTP/1.1 201 Created
Location:https://www.onenote.com/api/v1.0/me/notes/pages/0-37e6dad...
X-CorrelationId:8943c159-ee49-4c71-8cd0-ebf0861d07a6
Date:Sun, 09 Aug 2015 21:36:40 GMT
Content-Type:application/json; odata.metadata=minimal; odata.streaming=true
 ...

{
  "@odata.context": "https://www.onenote.com/api/v1.0/$metadata#me/notes/pages/$entity",
  "title": "My new OneNote page",
  "createdByAppId": "WLID-0000000048219837",
  "links": {
    "oneNoteClientUrl": {
      "href": "onenote:https://d.docs.live.net/73dbaf9b..."
    },
    "oneNoteWebUrl": {
      "href": "https://onedrive.live.com/redir.aspx?cid=73dbaf9b..."
    }
  },
  "contentUrl": "https://www.onenote.com/api/v1.0/me/notes/pages/0-37e6dad.../content",
  "lastModifiedTime": "2015-09-09T12:45:00Z",
  "id": "0-37e6dad8c6eb489294656ad878431666!209-73DBAF9B7E5C4B4C!153",
  "self": "https://www.onenote.com/api/v1.0/me/notes/pages/0-37e6dad...",
  "createdTime": "2015-09-09T12:45:00Z"
}

POST ページ要求の詳細については、「ページの作成」を参照してください。

OneNote アプリを作成する理由

OneNote を統合して、人気アプリを作成します。OneNote API を使用して、ノート、リスト、画像、ファイルなどを OneNote ノートブックで作成したり管理できます。

メモやアイデアを収集して整理する

コンテンツを追加したり、アレンジしたりできるキャンバスとして OneNote を使用します。 OneNote API によってアプリを簡単に作成できるので、学生がノートを取る、家族で計画やアイデアを共有、 買い物客が写真を共有するなど、—人々が最も関心のあるものすべてを行うことができます。 アプリでは、みんなが必要とする情報を集め、OneNote に送り、それらを整理することができます。

さまざまな形式で情報をキャプチャする

HTML、埋め込み画像 (ローカルやパブリック URL にある)、ビデオ、オーディオ、メール メッセージ、その他の一般的なファイル タイプをキャプチャできます。OneNote では、Web ページや PDF ファイルをスナップショットとして表示することもできます。OneNote API は、OneNote ページ レイアウト用に標準 HTML および CSS のセットをサポートします。そのため、表、インライン イメージ、基本書式を使用して思いどおりの外観を実現できます。

OneNote エコシステムを使用して、コア シナリオを強化する

その他の強力な OneNote API 機能をタップで使用できます。この API では、イメージに対する OCR の実行、フルテキスト検索のサポート、クライアントの自動同期、イメージの処理、名刺キャプチャ、オンライン製品一覧やレシピ一覧の抽出などを実行できます。メモや軽量メディアのクラウドでのデジタル メモリ ストアとして、またはドメイン固有データのデータ フィードとして OneNote を使用します。

すべての主要プラットフォームの数百万人に上る OneNote ユーザーが利用できる

OneNote を使用すると、アプリの使用量が増加します。 新しい Windows デバイスにプレインストールされていて、人気の高いプラットフォームでも、OneNote Online として Web でも、さらに Office 365 —の一部としても使用できる OneNote は、世界中の 1 億人以上のユーザーが積極的に使用しています。 機能の豊富な OneNote 環境を活用するアプリを公開する際、クロスプラットフォーム市場の可能性を無視することはできません。

OneNote API を使ってみる

サンプルとチュートリアルを使用して、すぐにコーディングを開始したり、対話型コンソールを試してみたり、ドキュメントを深く掘り下げて調べたりできます。

OneNote のサンプルとチュートリアル

これらのサンプルとチュートリアルでは、異なるプラットフォーム上で OneNote API を使用する際の基本事項が示されます。(GitHub のサンプルをすべてご覧ください)。

プラットフォーム サンプルとチュートリアル
iOS iOS-REST-API-Explorer (MSA のみ)
チュートリアル
Windows OneNoteAPISampleWinUniversal
Android Android-REST-API-Explorer
PHP OneNoteAPISamplePHP (MSA のみ)
Node.js OneNoteAPISampleNodejs (MSA のみ)
Ruby OneNoteAPISampleRuby (MSA のみ)
ASP.NET MVC チュートリアル (Azure AD のみ)

*MSA = Microsoft アカウント認証、AAD = Azure Active Directory 認証

方法と概念に関する記事

より深く掘り下げる準備ができたら、方法と概念に関する次の記事を参照して、OneNote で行えることの詳細について学習します。

OneNote の開発のための SDK

OneNote アプリは、OneNote API に対するすべての要求に必要なアクセス トークンを取得するのに OneDrive API SDK を使用することができます。 SDK は認証を簡単にします。 ID 情報を提供し、いくつかの呼び出しを統合するだけで、SDK はサインインから、トークンの取得、格納、更新への同意まですべてを処理します。 それから、OneNote API への REST 呼び出しを行うことができます。 iOS チュートリアル は、SDK を OneNote アプリで使う方法を説明します。

コンシューマー ノートブックの場合、すべてのバージョンの SDK は Microsoft アカウント認証をサポートします。エンタープライズ ノートブックの場合、一部のバージョンの SDK は Azure Active Directory もサポートします。 現在サポートされるプラットフォームの一覧については、OneDrive ドキュメント をご覧ください。

注意

OneDrive API SDK は、Live SDK を置き換えます。 Live SDK は廃止されましたが、それを使用する既存の OneNote アプリケーションを引き続きサポートします。 新しい開発では、OneDrive API SDK を使用してください。

ある時点で、認証の処理と OneNote API へのネイティブ呼び出しのサポートの両方を行うライブラリが提供されるかもしれませんが、今は OneDrive API SDK をお使いください。

または、エンタープライズ アプリは、Active Directory Authentication Library (ADAL) を使用して、Office 365 と SharePoint ホスト型のノートブックにアクセスできます。 お使いのプラットフォームで利用可能な SDK がない場合や、認証プロセスをさらに制御する場合は、ADAL を直接使用することを検討してください。 ASP.NET MVC チュートリアル は、ADAL を OneNote アプリで使う方法を説明します。

重要

OneNote コンテンツとリソースを操作するには、常に OneNote API を使う必要があります。 OneDrive API を使用しないでください。

詳細については、「 OneNote のリソース」を参照してください。

つながる

機能の拡張や改善が行われた場合は、対応することをお勧めします。ご質問やコメントを歓迎しております。また、解決のお手伝いをしたいと思っておりますし、最新の機能を活用していただきたいとも願っています。Microsoft とつながる方法を以下に示します。

  • ニュースや役に立つヒントについて OneNote 開発者ブログをお読みください。
  • Stack Overflow で専門家の答えを得てください。
  • Twitter でフォローしてください (@onenotedev)。
  • UserVoice を使用して、アイデアやコメントをお寄せください。

変更内容

次に、過去 1 年間に OneNote API とドキュメントに加えられた変更について示します。

2016 年 7 月

2016 年 5 月

2016 年 3 月

  • が本稼働リリースされました。preAuthenticated=true クエリ文字列オプションを使用してページ コンテンツを取得する場合、出力 HTML にはページ上のイメージ リソースへのパブリック URL が含まれます。これらの事前認証の URL は、1 時間有効です。「パブリック リソースのワンタイム認証」をご覧ください。GET /pages/{id}/content?preAuthenticated=true
  • が本稼働リリースされました。これにより、メッセージ本文で application/json コンテンツ タイプを送信すれば、セクションの名前を変更できるようになりました。たとえば、PATCH /sections/{id} のようになります。 { "name": "New section name" }

2016 年 2 月

2016 年 1 月

2015 年 11 月

  • Office 365 ノートブックのサポートがプレビューから運用環境に移動されました。これには、SharePoint サイトと Office 365 グループでのノートブックのサポート、およびこれらの組織レベルのノートブックにアクセスするために必要な Notes.Read.AllNotes.ReadWrite.All のアクセス許可が含まれます。
  • |||UNTRANSLATED_CONTENT_START|||Released POST /sectiongroups/{id}/sections, POST /notebooks/{id}/sectiongroups, and POST /sectiongroups/{id}/sectiongroups to production.|||UNTRANSLATED_CONTENT_END|||
  • CopyNotebookCopyToNotebookCopyToSectionGroupCopyToSection が Office 365 ノートブックの運用環境にリリースされました。
  • parentSectionparentNotebook ナビゲーション プロパティがページに追加されました。既定の GET pages クエリは parentSection を展開し、セクションの nameidself プロパティを選びます。
  • levelorder プロパティがページに追加されました。これらのプロパティを取得するには、pagelevel パラメーターを、セクション内のページ コレクションのクエリ、または特定のページのクエリに含めます。例: GET ../sections/{id}/pages?pagelevel=true または GET ../pages/{id}?pagelevel=true
  • ノートブック名の最大文字数が 50 から 128 文字に変更されました。
  • 方法と概念に関するドキュメントが移動されました。新しいドキュメントでは、コンシューマーとエンタープライズの両方の OneNote API について説明します。

2015 年 9 月

  • top クエリ文字列オプションを使用した GET pages 要求で返されるページの最大数が 500 から 100 に変更されました。

2015 年 7 月

  • OneNote REST API Explorer サンプル アプリが 2 つリリースされました。
    - iOS REST API Explorer
    - Android REST API Explorer
  • |||UNTRANSLATED_CONTENT_START|||Released DELETE pages to production.|||UNTRANSLATED_CONTENT_END|||
  • 操作方法のトピックのルート サービス URL を更新し、新しい、推奨される /me/notes/ ルートを使用するようにしました。 https://www.onenote.com/api/v1.0/me/notes/

2015 年 6 月

関連項目