Table of contents
TOC
目次を折りたたむ
目次を展開する
最終更新日: 2018/07/10

OneNote の開発

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

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

OneNote ページのサンプル。

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

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

プラットフォームの概要

OneNote サービスは Microsoft のクラウドで実行され、OneNote コンテンツへのプログラムでのアクセスを可能にする RESTful インターフェイスが提供されます。OneNote API は、JSON、HTML、および OData で構築される軽量でシンプルな API で、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 のサンプルをすべてご覧ください)。

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

対話型コンソール

Microsoft が提供する対話型コンソールのいずれかを使用して、自分の OneNote ノートブックで OneNote API を試します。

対話型 REST リファレンス

対話型 REST リファレンス

(1) エンドポイントを選び、(2) メソッド タイルをクリックして、(3) [コンソールに切り替え] を選んでから Microsoft アカウントの資格情報で認証を行います。必要に応じてサンプルのクエリ文字列オプションを変更して、[リソースの呼び出し] を選びます。


Apigee での OneNote

Apigee での OneNote

(1) ドロップダウン メニューから [OAuth 2 の暗黙的な付与] を選んで Microsoft アカウント資格情報で認証を行い、(2) エンドポイントを選びます。必要に応じて [クエリ]、[テンプレート]、[ヘッダー] タブに値を入力し、(3) [送信] を選びます。

方法と概念に関する記事

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

認証とアクセス許可

ブランドのガイドライン

サポート対象の REST 操作

OneNote コンテンツと構造を取得する

OneNote クライアントを開く

ノートブック、セクション、ページのコピー

ページを作成する

ページ コンテンツを更新する

画像、ビデオ、ファイルを追加する

絶対配置要素を作成する

データを抽出する

ノート シールを使用する

OneNote エンティティのアクセス許可を管理する

クラス ノートブックの操作

スタッフ ノートブックの操作

入力 HTML と出力 HTML

エラー コードと警告コード

保存ダイアログを使用する

Webhooks を購読する

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 を使用しないでください。

つながる

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

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

変更内容

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

2017 年 2 月

OneNote 認証と Azure AD アプリケーションのアクセス許可のトピックが追加されました。

2016 年 7 月

スタッフ ノートブックの操作 トピックが追加されました。

埋め込みビデオに関するサポートが文書化されました。

2016 年 5 月

ページ プレビューのサポートが追加されました。../pages/{id}/preview エンドポイントを使用して、ページのテキストと画像のプレビュー コンテンツを取得します。詳細については、ブログの投稿「ページ プレビュー API」を参照してください。

の場所に関するサポートが文書化されました。これにより、指定したユーザー (URL 内で指定) が現在のユーザーと共有している OneNote コンテンツにアクセスできます。この機能は、エンタープライズ ノートブックのみで利用可能です。../users/{id}/notes/

ノートブック、セクション グループ、セクションのアクセス許可を設定できるアクセス許可管理 API が追加されました。この機能は、エンタープライズ ノートブックのみで利用可能です。

次の新しいクラス ノートブック操作が追加されました。他のノートブックからのセクションの挿入教師のみセクション グループの追加クラス ノートブックの削除指定した言語でのクラス ノートブックの作成新規クラス ノートブックのメール通知の送信。この機能は、エンタープライズ ノートブックのみで利用可能です。

次のものをサポートしました: <pre> element in page HTML content. Now, content captured from sites like MSDN and StackOverflow renders with proper code formatting.

2016 年 3 月

GET /pages/{id}/content?preAuthenticated=true が本稼働リリースされました。preAuthenticated=true クエリ文字列オプションを使用してページ コンテンツを取得する場合、出力 HTML にはページ上のイメージ リソースへのパブリック URL が含まれます。これらの事前認証の URL は、1 時間有効です。「パブリック リソースのワンタイム認証」をご覧ください。

PATCH /sections/{id} が本稼働リリースされました。これにより、メッセージ本文で application/json コンテンツ タイプを送信すれば、セクションの名前を変更できるようになりました。たとえば、次 のようになります: { "name": "New section name" }

2016 年 2 月

トピック「Webhooks の購読」と「クラス ノートブックの操作」が追加されました。現在、Webhooks は OneDrive のコンシューマー ノートブックのみでサポートされています。

2016 年 1 月

調整が有効になりました。詳細は「OneNote API 調整とそれを回避するためのベスト プラクティス」を参照してください。

トピック「サポート対象の REST 操作」と「ノートブック、セクション、ページをコピーする」が追加されました。現在、コピー機能は Office 365 ノートブックのみで使用できます。

2015 年 11 月

Office 365 ノートブックのサポートがプレビューから運用環境に移動されました。これには、SharePoint サイトと Office 365 グループでのノートブックのサポート、およびこれらの組織レベルのノートブックにアクセスするために必要な Notes.Read.AllNotes.ReadWrite.All のアクセス許可が含まれます。

POST /sectiongroups/{id}/sectionsPOST /notebooks/{id}/sectiongroupsPOST /sectiongroups/{id}/sectiongroups が本稼働リリースされました。

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

DELETE pages が本稼働リリースされました。

操作方法のトピックのルート サービス URL を更新し、新しい、推奨される /me/notes/ ルートを使用するようにしました。 https://www.onenote.com/api/v1.0/me/notes/

2015 年 6 月

ノート シールの使用」トピックが公開されました。

その他のリソース

© 2018 Microsoft