CodeZine(コードジン)

特集ページ一覧

Pythonで使って覚えるEvernote API

ノート内容からタグを付与するプログラムを作ってみよう

  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

Evernote API を使うための準備

Evernoteアカウントの作成

 まだEvernoteアカウントを持っていない方はこちらでアカウントを作っておいてください。1つのアカウントでサンドボックス環境、本番環境のどちらも利用可能になります。

デベロッパートークンを取得する

 Developer Tokensのページへアクセスし、「Sandbox」のURLリンクを選択します。

デベロッパートークン発行リンク
デベロッパートークン発行リンク

 認証を求められるのでメールアドレス、パスワードでログインします。

ログイン画面
ログイン画面

 [Create Developer Token]ボタンを押します。

デベロッパートークン発行画面
デベロッパートークン発行画面

 表示された[Developer Token]を控えておきます。デベロッパートークンを無効化したい場合は[Revoke your developer token]ボタンを押すことで無効化することが可能です。再発行もできます。

発行されたデベロッパートークン
発行されたデベロッパートークン

Evernote SDK をインストールする

 コマンドプロンプトを起動し、pipを使ってインストールします。

Evernote SDKのインストール(※執筆時点で最新のバージョン1.25.2を指定)
> pip install evernote==1.25.2

Evernote API を使ってみよう(1)

 準備ができたところで早速、Evernote APIをPythonから呼び出してみましょう。

ノートブックを作成する

 まずはノートブックの作成です。

サンプルプログラム:ノートブック作成
# coding:utf-8
from evernote.api.client import EvernoteClient
import evernote.edam.type.ttypes as Types

# Evernoteクライアントを初期化する(1)
client = EvernoteClient(token='Set your developers token')
note_store = client.get_note_store()

# ノートブックインスタンスを生成する(2)
notebook = Types.Notebook()
notebook.name = 'My First Notebook'
# ノートブックを作成する(3)
created_notebook = note_store.createNotebook(notebook)

print('A notebook was created!')

 (1)デベロッパートークンでEvernoteクライアントを初期化し、EvernoteクライアントからNoteStoreを取得します。デベロッパートークンは先ほど発行したトークン文字列を指定してください。

 (2)ノートブックのインスタンスを生成し、ノートブック名を設定します。

 (3)NoteStoreのノートブック作成メソッドを呼び出して、Evernoteにノートブックを保存します。

文字コードについて

 ソースコードはUTF-8で保存してください。 ちなみに、標準出力に日本語文字列を含む場合、Windows環境ではPython標準のIDLEなど、UTF-8に対応したツールから実行しないと標準出力内容が文字化けします。筆者の環境ではコマンドプロンプトで文字コードをUTF-8に切り替えても(> chcp 65001)1文字目が化けてしまいました。

 余談ですが、筆者はWindows環境でのPythonコードの動作確認にはMicrosoft社が開発しているオープンソースのエディタVisual Studio Codeを使用しました。Visual Studio CodeはSublime TextやAtomライクなエディタで機能拡張による機能追加が可能で、機能拡張をインストールすることでデバッガを使ったPythonコードのデバッグも可能になります。デバッグコンソールはUTF-8に対応しているので日本語出力も文字化けせず便利でした。一度試してみることをお勧めします。

 コマンドプロンプトから実行し、Webブラウザ(またはEvernoteクライアントアプリケーション)からEvernoteへアクセスしてノートブックが作成されていることを確認します。

ノートブック作成プログラムの実行
> python samplecreate.py
作成されたノートブック
作成されたノートブック

同じ名前のノートブックは作成できない

 Evernoteでは同じノートブック名は作成できません。そのため、プログラムを再度実行すると例外が発生します。再度実行する場合はノートブックをリネームするか、削除してから実行するようにしてください。

ノートブック名重複時に発生する例外
  evernote.edam.error.ttypes.EDAMUserException: EDAMUserException(errorCode=10, parameter='Notebook.name')

 ここで表示されるエラーコード10はDATA_CONFLICTを示すものです。エラーコードの仕様はこちらに定義されているので、エラーが発生する時は参考にしてみてください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 水倉 良明 (サイオステクノロジー株式会社)(ミズクラ ヨシアキ)

    分子生物学の世界からIT業界に飛び込み、エンタープライズなシステム開発の面白さに魅了される。アプリケーションエンジニアとして経験を積み、AWS、Azureの登場でいつの間にかインフラ構築、運用にも携わるように。現在はサイオステクノロジー(株)で主にクラウド上でのデータ分析基盤構築や関連ツールの開発に...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5