Evermonkeyを導入してVisual Studio Code (VS Code)でMarkdown利用→evernote同期

未分類アプリ, Windows

 

テキストを起こすのに、Markdownは大変に便利である。最近はほとんどの文章をVisual Studio Code(VS Code)とMarkdownで執筆するようになった。
そして流行は早一段落したような気もするが、全文検索ツールとしてのEvernoteもまた便利である。なんとかして、VS CodeでMarkdownを用いて執筆をしつつ、Evernoteにも連携をしたい。そんな夢を叶えてくれるのが、VS Code用のプラグイン「Evermonkey」なのだが、設定に一癖があったのでこちらにメモを記載しておく。

Evermonkey

簡単に言えば、VS Codeで書いたMakrdownファイルをEvernoteにsyncしてくれる拡張機能(プラグイン)。公式は以下。

利用するためにはEvernoteのTokenとNoteStoreURLが必要となるのだが、付属するツールのever tokenを用いてもうまく取得することが出来ない。そこで、これらをEvernoteに申請&デベロッパー向けのツールを用いることで入手し、設定をしてあげる必要がある。

EvernoteのDeveloper Keyを入手する

訪問するのは公式にある以下のページ。

右上にある「GET AN API KEY」をクリックすると、下記のような入力フォームが現れるので、これらを埋めて申請をする。

申請が通ると、次のようなメールがやってくる。自動で配信しているわけではないようで、私の場合は申請から数時間のラグがあった。

Subject: Evernote API Key
Thanks for your interest in the Evernote API! This message contains your new API key and some information to help you get started.

Consumer Key: XXXXX
Consumer Secret: XXXXXXX
Application Name: XXXXX

Please be sure to request a separate API key for each application that you develop.

Your new key is currently active on our testing sandbox, https://sandbox.evernote.com/, but not on our production service. Because the sandbox is completely isolated from our production environment, you will need to create a new account to do your testing. You can create as many sandbox accounts as you need at https://sandbox.evernote.com/Registration.action, but don’t use the sandbox for any critical data, since it’s not protected and backed up like our production service.

To use the API key, you’ll need to visit our developer site, https://dev.evernote.com/doc/, and download the appropriate API SDK for your platform. The SDKs include our API client code as well as sample code, and the API page also contains links to our API Overview and detailed documentation.

ただし、ここで書いてあるConsumer keyとConsumer Secretは、あくまでもsandbox環境用のもので、本番環境用のものではない。そのため、Evernoteに対して別途本番環境へのアクセス申請を行う必要がある。

Evernoteの本番環境(Production)用API Keyを申請する

続いて向かうのは以下のページ。

ここから、「Activate an API Key」をクリックすると、またまた申請フォームが現れる。こちらに入力をした上でまたまた申請。

すると数日後、明らかに人手を割いて書いていると思われる形で、申請の認可メールがやってきた。

Hello XXXX,

We have activated your API key (thir) on our production service. If you have questions, please proceed to Stack Overflow and join the community discussion there: http://stackoverflow.com/questions/tagged/evernote

Thank you for building with our API,

Evernote Developer Relations

これで、先ほど入手していたConsumer keyとConsumer secretを本番環境に対して用いることが出来る。

SDKを用いてEvernoteのTopenを入手する

続いてはTokenの入手。これは、EvernoteのSDKを用いて行うことにした。Evernoteには様々な言語用のSDKが用意されているのだが、残念ながらPython3系は提供されていないようで、Ruby用のものを使用。

READMEにも記載があるが、以下の手順で行えば問題はなかった(なお、READMEには記載のない点として、sandboxを向いている設定を変更してあげる必要がある)。

  1. Sinatraをインストール(gem install sinatra)
  2. Oauthをインストール(gem install oauth)
  3. sample/oauth/evernote_config.rb を開き、Consumer Keyとconsumer secretを代入。合わせて、EVERNOTE_SERVERの、sandboxとなっているところをwwwに変更
  4. コマンドラインから、ruby -rubygems evernote_oauth.rbを実行してサンプルアプリをスタートさせる

これで、4567ポートにアクセスをすると、サンプルアプリが動作する。

[2020-03-12 15:28:10] INFO  WEBrick 1.3.1
[2020-03-12 15:28:10] INFO  ruby 2.3.1 (2016-04-26) [x86_64-linux-gnu]
== Sinatra (v2.0.8.1) has taken the stage on 4567 for development with backup from WEBrick
[2020-03-12 15:28:10] INFO  WEBrick::HTTPServer#start: pid=31022 port=4567

実際にアクセスをすると、「Authentication Steps」に1~4の記載がある。「Click here」を各ステップ毎に行っていくと、最終的にTokenとNoteStore URLが手に入る。

EvermonkeyにTokenとNoteStore URLを設定する

最後に行うのは、Evermonkeyへの設定投入。

VS Codeの設定からEvermonkeyの設定へいくと、「Note Store Url」と「Token」を入れる場所がある。こちらに、先ほど取得したものをCopy&Pasteすれば問題は無い。

実際に使ってみる

コマンドは次のように豊富に用意されている。

手っ取り早く新しい文章を作るときには、コマンドプロンプトから、ever createで新規作成、ever publishでEvernoteとの同期が可能だ。実際に次のようなテキストを売ってみると……

---title: テストtags: 
notebook: 
---# テスト## テストテスト* こんにちは!!* ああああ

Evernoteにはこんな形で現れる。

なお、Evernote側からは読み取り専用(変更不可)となっており、ファイルの編集は必ずVS Code+Evermonkeyから行う形となる。
Markdownファイルをローカルに保存しておき、それを更新していけば良さそうだ。

他にも既存のファイルを読み込んだり、添付ファイルを付けることも出来る。エディタをVS Codeに集約する試みがこれで出来そうだ。


執筆者紹介

Thir

購入したガジェットの紹介やサーバーの構築方法、スマートホーム化等、そのときハマっていたもののメモ書き・趣味の備忘録ではありますが、お役に立つ情報があれば幸いです。最近はYouTubeでもレビュー動画やVlogをあげています。サイト紹介・プロフィールはこちら。依頼・お問い合わせはこちらから。