OneNote の開発
適用対象: OneDrive のコンシューマー ノートブック | Office 365 のエンタープライズ ノートブック
OneNote は、オンラインで使用でき、かつ多くのモバイルおよびタブレット プラットフォームで使用できる人気の高いノート作成ツールです。普段使用しているアプリを OneNote と統合することによって、これまで以上に簡単に、お気に入りのプラットフォームで利用できる非常に便利なアプリを構築し、世界中の数百万人のユーザーに利用してもらうことができるようになりました。
OneNote のノートブック、セクション、ページ階層、簡単に使用できる API を活用して、ユーザーは計画を立てたり、アイデアや情報を整理したりできます。
注意
OneNote APIを使用すると、Microsoft API の利用規約に同意したことになります。
プラットフォームの概要
OneNote サービスは Microsoft のクラウドで実行され、OneNote コンテンツへのプログラムでのアクセスを可能にする RESTful インターフェイスが提供されます。 OneNote APIは軽量でシンプル—JSON、HTML、およびODataで構築されているので、HTTP要求をサポートするどの言語もしくはプラットフォームでも利用できます。
次に、OneNote API 開発スタックを簡単に図示します。
最初に、ユーザーは認証され、アプリへのアクセスを許可される必要があります。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 で行えることの詳細について学習します。
- クイック スタート チュートリアル
- 認証とアクセス許可
- 認証と Azure AD アプリケーションのアクセス許可
- ブランドのガイドライン
- サポート対象の REST 操作
- OneNote コンテンツと構造を取得する
- OneNote クライアントを開く
- ノートブック、セクション、ページのコピー
- ページを作成する
- ページ コンテンツを更新する
- 画像、ビデオ、ファイルを追加する
- 絶対配置要素を作成する
- データを抽出する
- ノート シールを使用する
- 入力 HTML と出力 HTML
- エラー コードと警告コード
- OneNote エンティティのアクセス許可を管理する
- 共有リンクの作成
- クラス ノートブックの操作
- 非同期クラス ノートブックの操作
- スタッフ ノートブックの操作
- クラス ノートブック統合のための LMS API ガイドライン
- クラス ノートブック統合のための LMS スケール ガイドライン
- 保存ダイアログを使用する
- 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 を使用しないでください。
詳細については、「 OneNote のリソース」を参照してください。
つながる
機能の拡張や改善が行われた場合は、対応することをお勧めします。ご質問やコメントを歓迎しております。また、解決のお手伝いをしたいと思っておりますし、最新の機能を活用していただきたいとも願っています。Microsoft とつながる方法を以下に示します。
- ニュースや役に立つヒントについて OneNote 開発者ブログをお読みください。
- Stack Overflow で専門家の答えを得てください。
- Twitter でフォローしてください (@onenotedev)。
- UserVoice を使用して、アイデアやコメントをお寄せください。
変更内容
次に、過去 1 年間に OneNote API とドキュメントに加えられた変更について示します。
2016 年 7 月
- スタッフ ノートブックの操作 トピックが追加されました。
- 埋め込みビデオに関するサポートが文書化されました。
2016 年 5 月
- ページ プレビューのサポートが追加されました。
../pages/{id}/preview
エンドポイントを使用して、ページのテキストと画像のプレビュー コンテンツを取得します。詳細については、ブログの投稿「ページ プレビュー API」を参照してください。 - の場所に関するサポートが文書化されました。これにより、指定したユーザー (URL 内で指定) が現在のユーザーと共有している OneNote コンテンツにアクセスできます。この機能は、エンタープライズ ノートブックのみで利用可能です。
../users/{id}/notes/
- ノートブック、セクション グループ、セクションのアクセス許可を設定できるアクセス許可管理 API が追加されました。この機能は、エンタープライズ ノートブックのみで利用可能です。
- 次の新しいクラス ノートブック操作が追加されました。他のノートブックからのセクションの挿入、教師のみセクション グループの追加、クラス ノートブックの削除、指定した言語でのクラス ノートブックの作成、新規クラス ノートブックのメール通知の送信。この機能は、エンタープライズ ノートブックのみで利用可能です。
<pre>
ページの HTML コンテンツの要素にサポートを追加。 MSDN や StackOverflow などのサイトからキャプチャされたコンテンツが適切なコード書式設定を使用してレンダリングされるようになりました。
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 月
- トピック「Webhooks の購読」と「クラス ノートブックの操作」が追加されました。現在、Webhooks は OneDrive のコンシューマー ノートブックのみでサポートされています。
2016 年 1 月
- 調整が有効になりました。詳細については、「OneNote API 調整とそれを回避するためのベスト プラクティス」を参照してください。
- トピック「サポート対象の REST 操作」と「ノートブック、セクション、ページをコピーする」が追加されました。現在、コピー機能は Office 365 ノートブックのみで使用できます。
2015 年 11 月
- Office 365 ノートブックのサポートがプレビューから運用環境に移動されました。これには、SharePoint サイトと Office 365 グループでのノートブックのサポート、およびこれらの組織レベルのノートブックにアクセスするために必要な Notes.Read.All と Notes.ReadWrite.All のアクセス許可が含まれます。
- |||UNTRANSLATED_CONTENT_START|||Released
POST /sectiongroups/{id}/sections
,POST /notebooks/{id}/sectiongroups
, andPOST /sectiongroups/{id}/sectiongroups
to production.|||UNTRANSLATED_CONTENT_END||| - CopyNotebook、CopyToNotebook、CopyToSectionGroup、CopyToSection が Office 365 ノートブックの運用環境にリリースされました。
- parentSection と parentNotebook ナビゲーション プロパティがページに追加されました。既定の
GET pages
クエリは parentSection を展開し、セクションの name、id、self プロパティを選びます。 - level と order プロパティがページに追加されました。これらのプロパティを取得するには、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 月
- 「ノート シールの使用」トピックが公開されました。