プラットフォームとしてのOffice、第5号-OneNote REST APIの紹介

別の記事では、Alexander Bogdanovが、あらゆるタイプのアプリケーションに新しいOneNote REST APIを使用し、例としてユニバーサルWindows 10アプリケーションを使用することについて語っています。
OneNoteは、メモ、リスト、日課を作成するための最も一般的なアプリケーションの1つです。 日記アプリケーションの作成を簡素化するために、MicrosoftはOneNote APIをリリースしました。 ノートを操作するためのOneNoteをアプリケーションに統合できます。 開発者向けに、 OneNote REST APIを利用できます。これに基づいて、任意のプラットフォーム用のアプリケーションを作成できます。


ハブでOneNote APIを使用する方法についてはすでに簡単な説明がありました 、今日はWindows 10のサンプルアプリケーションを使用してOneNote REST APIの機能について説明します。

OneNote APIはどのように機能しますか?


Microsoft OneNote APIは、グローバルにアクセス可能なMicrosoftクラウド上で実行され、アプリケーションからユーザーのOneDriveクライアントにデータを送信します。



アプリケーションでOneNote APIを操作するには、次の3つの段階があります。

  1. ユーザーがOneNoteにデータを送信する場合に備えて、 ユーザーのログイン情報確認し、MicrosoftアカウントのOAuthトークンを取得します。
  2. 情報とトークンを APIに送信します。
  3. インターネット上のノートブックにデータを追加します。 他のOneNoteクライアントでデータが利用可能になります。

OneNote APIの使用を開始するには、クライアント識別子(clientID)を取得する必要があります。 方法を見てみましょう。

クライアント識別子(clientID)の取得


Microsoft Developer Center開発センターにアクセスして、Microsoftアカウントでサインインします。 ウィンドウが開き、以前に作成されたアプリケーションが表示されます。

アカウントをお持ちでない場合: ここで Microsoftアカウントを作成してください



[ アプリケーションの作成 ]をクリックし、アプリケーション名を入力して[ 同意する ] クリックします



左側で[ アプリケーションの設定]を選択し、 クライアントIDが画面に表示されます。 それが必要です。



次に、アプリケーションでAPIを使用するには、ユーザー認証プロセスを実行し、ユーザーの資格情報を確認し、リクエストを実行するためのトークンを取得する必要があります。

ユーザー認証


OneNote APIを使用する場合、アプリケーションはMicrosoftアカウントを確認するときに特定のアクセス許可を要求する必要があります。 ユーザーの場合、このプロセスは標準です。ログインとパスワードの入力フォームが表示され、ユーザーに代わってアプリケーションにアクティビティを許可するよう求められます(たとえば、投稿を公開したり、ソーシャルネットワークから友人を表示したりできます)。

開発者は、ユーザー認証プロセスを実施し、トークンを取得する必要があります。 OAuth 2.0承認プロセスを使用します。これには、 WebAuthenticationBrokerが必要です

最初に、クライアントは特定のアドレスで認証リクエストを実行します。したがって、最初にこのアドレスを生成する必要があります。 一般的には、次のようになります。

login.live.com/oauth20_authorize.srf?client_id=CLIENT_ID&scope=SCOPES&response_type=RESPONSE_TYPE&redirect_uri=REDIRECT_URL

以下は、クエリパラメータを含む表です。
パラメータ
説明
価値
CLIENT_ID
顧客ID
00000000 ***
範囲
OAuth 2.0仕様のスコープパラメーターに準拠しています。
wl.signin%20wl.basic
response_type
許可サーバーの応答で返されるデータのタイプ
トークン
REDIRECT_URI
認証後にユーザーをリダイレクトするURI
https%3A%2F%2Fwww.tdgdgdgdd.com
WebAuthenticationBrokerは、2つのパラメーターを入力として受け入れます。前に生成した要求のアドレスとREDIRECT_URIです。 要求の転送アドレスの形式に注意してください。

認証リクエストコード(Windows用):

function getToken() { //  var startURI = Windows.Foundation.Uri("https://login.live.com/oauth20_authorize.srf?client_id=0000000040*****&scope=wl.signin%20wl.basic&response_type=token&redirect_uri=https%3A%2F%2Fwww.tdgdgdgdd.com"); // REDIRECT_URI var endURI = Windows.Foundation.Uri("https://www.tdgdgdgdd.com"); //   return Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync( Windows.Security.Authentication.Web.WebAuthenticationOptions.none, startURI, endURI).then( function onComplete(response) { return getTokenFromResponse(response.responseData); }, function onError(error) { //  }); } 

リクエストが成功した場合、次の形式で行が返されます。

https://login.live.com/oauth20_desktop.srf?lc=1033#access_token=******token_type=bearer&expires_in=3600&scope=wl.signin%20wl.basic&user_id=**********

さらにリクエストを行うには、 access_ tokentoken_ typeの間にあるものだけが必要です。地衣類を切り取ります。

 function getTokenFromResponse(response) { var startid = response.indexOf("access_token"); var endid = response.indexOf("&", startid + 13); var token = response.substring(startid + 13, endid); return token; } 

WindowsとWindows Phoneの方法の違いに注意してください。 WindowsではauthenticateAsyncメソッドが使用され、Windows PhoneではauthenticateAndContinueメソッドが使用されます。 承認ウィンドウが表示されたら、アプリケーションを保存および復元することも検討してください。



いいね! トークンが受信され、リクエストを作成できるようになりました。

POSTおよびGETリクエストの送信


POSTおよびGET要求を使用してデータを受信および書き込みます。

現在、OneNote APIでは次のことができます。



OneNote Development Center Webサイトで形式と追加のクエリパラメーターを確認できます。 また、サイトでは、言語を選択し、特定のリクエストコードの例と回答オプションを見る機会があります。



OneNote Development Centerに加えて apigee.comインタラクティブコンソールでリクエストをテストできます。

apigeeインタラクティブコンソールを使用する


コンソールでは、OneNote APIへの簡単なREST呼び出しを作成できます。 コンソールの操作を開始するには、サイトにアクセスしてください

左上の[ oAuth]をクリックし、[ OAuth 2 Implicit Grant]を選択します。



[ OneNoteでサインイン ]ボタンをクリックして、Microsoft資格情報を入力します。



OneNote APIがOneNoteでページを作成できることを確認します。 Yesをクリックします。



これで、APIリクエストを送信し、OneDriveでホストされるOneNoteノートブックでページを作成できます。

インタラクティブコンソールを使用してリクエストを送信する


左側には灰色の矢印があります。 それをクリックして、可能なクエリのリストを開きます。 次に、作成するクエリを選択します。

たとえば、新しいノートブックを追加します。 これを行うには、セクションノートブックPOST ノート ブックを選択します。



ページが表示され、その上部にリクエストのアドレスが示され、そのすぐ下にリクエストのデータ(ノートブックの名前、ページのメインテキストなど)を選択できます。



[ 送信 ]ボタンクリックすると、リクエストが送信されます。



要求の本文は画面の左側に表示され、OneNote APIからの応答は右側に表示されます。 Content-TypeAutorizationなどのデータに注意してください 。 アプリケーションでリクエストを作成するときに必要になります。

ユニバーサルアプリでOneNote APIを使用する


OneNote REST APIを使用する基本的な手順について学びました。 次に、ユニバーサルHTMLおよびJavaScriptアプリケーションの例として、OneNote APIの機能を見てみましょう。

アプリケーションのメインロジックは次のとおりです。




GETリクエストを送信する

リストをロードするには、XMLHttpRequestリクエストを使用します。

openメソッドでは、GETリクエストを作成します。 リンク-表示可能なノートブックのダウンロードアドレスhttps://www.onenote.com/api/v1.0/notebooks

さらに、setRequestHeaderメソッドのパラメーターで、トークンを使用して承認が行われることを示します。

そして最後に、答えを処理します。 答えとして、さらなる作業のために「解析」する必要があるJSONファイルを取得します。 その後、使用可能なノートブック(セクション、ページ)の数に基づいて、ボタンが作成されます。ボタンのプロパティには、それらが導くセクション(ページ)へのリンクを記述する必要があります。

あなたはネタバレの下でリクエストの例を見ることができます、このリクエストの例が提示されます。

 function GetNotebookList(token) { //  var request = new XMLHttpRequest; // open request.open("GET", "https://www.onenote.com/api/v1.0/notebooks", false); // setRequestHeader request.setRequestHeader("Authorization", "Bearer " + token); //  request.onreadystatechange = function (response) { //  var notes = JSON.parse(this.responseText); var length = notes.value.length; //   var buttonList = document.createElement("div"); for (var i = 0; i < length; i++) { var NotebookName = notes.value[i].name; var sec = notes.value[i].self; var b = document.createElement("button"); b.innerText = NotebookName; b.id = notes.value[i].id; var link = notes.value[i].sectionsUrl; b.dataset.link = link; buttonList.appendChild(b); //     –    + //    ,      b.addEventListener("click", function (e) { var link = this.dataset.link; WinJS.Navigation.navigate("/pages/notebook/viewnotebook.html",link); return null; }); } var buttonsDiv = document.getElementById("buttonsDiv"); buttonsDiv.appendChild(buttonList); } request.send(); return null; } 

ヒント: x-ms-webview要素は、ページコンテンツの表示に適しています。



POSTリクエストを送信する

OneNote API POSTリクエストは、新しいページ(ノートブック、セクション)を作成するときに使用されます。

たとえば、新しいページを追加する場合、クエリは次のようになります 悲しい顔

 function PostNewPage(token) { var body = document.getElementById("viewPage").innerHTML; //  var request = new XMLHttpRequest; // open request.open("POST", https://www.onenote.com/api/v1.0/pages, false); // setRequestHeader request.setRequestHeader('Content-Type', 'application/xhtml+xml', false);v // setRequestHeader request.setRequestHeader("Authorization", "Bearer " + token); //  request.onreadystatechange = function (response) { //  } request.send(body.name); return null; } } 

新しいページを追加するためのPOSTリクエストでは、setRequestHeaderメソッドを2回使用します。送信するデータの形式( application / xhtml + xml )を決定したら、承認パラメーターを設定します。

残りのリクエストは、すでに確認したリクエストに似ています。 再度、 apigee.comのインタラクティブコンソールでリクエストをテストするか、 OneNote開発センターの Webサイトで必要なリクエストパラメーターを確認できることに注目してください。

OneNote APIの操作は簡単です。すぐに始めることをお勧めします。



サイトリンク



著者について




Alexandra Bogdanova、プロジェクトマネージャー、カスタマーアンドパートナーエクスペリエンス、マイクロソフトロシア。 Microsoft Developer TourやMicrosoft Developer Conferenceなど、さまざまな会議、会議、ハッカソンの参加者。

Source: https://habr.com/ru/post/J268333/


All Articles