2014年3月29日土曜日

OneNote API を利用した新規ノートの作成

前回と同様、クライアントアプリで OneNote REST API を利用して色々試しています。今回は新規にノートを作成するところをやってみました。

今回のサンプルもこちらにアップしてありますので参考にしてください。
前回のサンプルにコードを追加した形となっています。

前回までのソースで、REST API によりサインインを行いアクセス用のトークンの取得までできていました。今回はそのトークンを用いて、実際に OneDrive 上の OneNote に新規にノートを作成します。

   1: Private Sub btnCreate_Click(sender As Object, e As RoutedEventArgs)
   2:  
   3:     '新規ノートの作成
   4:     Dim req = WebRequest.Create("https://www.onenote.com/api/v1.0/pages")
   5:     req.Method = "POST"
   6:     req.ContentType = "text/html"
   7:     req.Headers.Add("Authorization", "Bearer " + Application.Current.Properties("access_token"))
   8:     'POST する HTML
   9:     Dim postHtml = "<!DOCTYPE html>" + vbNewLine +
  10:                     "<html>" + vbNewLine +
  11:                    "    <head>" + vbNewLine +
  12:                    "        <title>OneNote API を使った POST サンプル</title>" + vbNewLine +
  13:                    "        <meta name=""created"" content=""2013-06-11T12:45:00.000-8:00""/>" + vbNewLine +
  14:                    "    </head>" + vbNewLine +
  15:                    "    <body>" + vbNewLine +
  16:                    "        <p>これは REST API を利用したサンプルにより作成されました。</p>" + vbNewLine +
  17:                    "    </body>" + vbNewLine +
  18:                    "</html>"
  19:     'POST データの生成
  20:     Dim enc = Text.UTF8Encoding.UTF8
  21:     Dim postBytes = Text.Encoding.UTF8.GetBytes(postHtml)
  22:     req.ContentLength = postBytes.Length
  23:     'POST データの書き込み
  24:     Using st = req.GetRequestStream
  25:         st.Write(postBytes, 0, postBytes.Length)
  26:     End Using
  27:     '結果の受信
  28:     Dim resStrings = New Text.StringBuilder
  29:     Using res = req.GetResponse
  30:         Using sr = res.GetResponseStream
  31:             Using sRead = New IO.StreamReader(sr, enc)
  32:                 resStrings.Append(sRead.ReadToEnd)
  33:             End Using
  34:         End Using
  35:     End Using
  36:  
  37:     MessageBox.Show(resStrings.ToString)
  38:  
  39: End Sub

今回追加したコードは上記の部分です。

OneNote に追加する部分は HTML にて作成し、アクセストークンをヘッダーに含ませた形で POST します。新規に作成する際に利用する HTML タグは次のものを利用しています。

  1. TITLE:ノートのタイトル部分に記載する文字です
  2. META:name="created" とし content="作成日時" とすることでノートの作成日時を指定できます
  3. BODY:ノート本体に記述する内容です。文字だけであれば今回のサンプルのようにしますが、通常の HTML のように画像を含ませたりすることも可能です。

このように POST データを生成し、API を呼び出すことで次のようなノートが作成されます。

image

ノートのタイトルや作成日時が、コードで記述した通りになっているのがわかるかと思います。

このような形で REST API を呼び出すことで、アプリから OneDrive 上の OneNote へデータを登録させることが可能です。

0 件のコメント:

コメントを投稿