Quantcast
Channel: てすとぶろぐ
Viewing all articles
Browse latest Browse all 208

OneNote API で Web サイトのキャプチャを登録する

$
0
0

OneNote API を色々試しているシリーズ、今回は Web サイトのキャプチャを登録してみました。なお現在 OneNote API の制限として、「新規ノートの作成」のみが可能というのもありますので、色々試される場合は、OneDrive 上に作成されたノートを毎回削除する必要があります。

OneNote API チームの公式 Blog でも書かれていますが、将来的な対応ということでまずは新規作成のみに限りリリースを行ったとの事ですので、近いうちに編集も可能になるかと思います。

Web サイトのキャプチャ、と言われている方式は OneNote では複数の方法が用意されています。

  1. アドレスを指定して OneNote 側で参照を行いキャプチャ
  2. HTML 構造を添付しその結果からキャプチャ

上記の方法で使うシーンが異なるケースもあることはあるのですが、個人的にはアドレス指定がメインで HTML 構造を添付する方法はなかなか使われないというか、その場合は画像として添付する方式を利用するのではないかな、と思います。なお、アドレス指定でキャプチャできないケースというのは、会員制サイトなどの認証が絡むケースで OneNote 側から参照できないサイトの場合になります。

アドレスを指定して OneNote 側で参照してもらう場合のコードは次のようになります。

   1:Dim req = WebRequest.Create("https://www.onenote.com/api/v1.0/pages")
   2: req.Method = "POST"
   3: req.ContentType = "text/html"
   4: req.Headers.Add("Authorization", "Bearer " + Application.Current.Properties("access_token"))
   5:'POST する HTML
   6:Dim postHtml =  "<!DOCTYPE html>" + vbNewLine +
   7:"<html>" + vbNewLine +
   8:"<head>" + vbNewLine +
   9:"<title>OneNote API を使った Web サイトキャプチャ POST サンプル</title>" + vbNewLine +
  10:"</head>" + vbNewLine +
  11:"<body>" + vbNewLine +
  12:"<p>これは REST API を利用して Web サイトをキャプチャしたサンプルです。</p>" + vbNewLine +
  13:"<img data-render-src=""http://blogahf.blogspot.jp/"" width=""400"" height=""400""></img>" + vbNewLine +
  14:"</body>" + vbNewLine +
  15:"</html>" + vbNewLine 
  16:'POST データの生成
  17:Dim enc = Text.UTF8Encoding.UTF8
  18:Dim postBytes = Text.Encoding.UTF8.GetBytes(postHtml)
  19: req.ContentLength = postBytes.Length
  20:'POST データの書き込み
  21: Using st = req.GetRequestStream
  22:     st.Write(postBytes, 0, postBytes.Length)
  23:End Using
  24:'結果の受信
  25:Dim resStrings = New Text.StringBuilder
  26: Using res = req.GetResponse
  27:     Using sr = res.GetResponseStream
  28:         Using sRead = New IO.StreamReader(sr, enc)
  29:             resStrings.Append(sRead.ReadToEnd)
  30:End Using
  31:End Using
  32:End Using

前回のサンプルと殆ど変り映えがなく、違いがあるのは POST している HTML の部分だけです。アドレスを指定してキャプチャする場合、img タグを利用します。data-render-src 属性でキャプチャしたい Web サイトのアドレスを指定すれば、OneNote 側でキャプチャを行いその結果がノートに貼り付けられます。


image


このような感じでキャプチャが貼り付けられます。


Viewing all articles
Browse latest Browse all 208

Trending Articles