[公式]Evernote API徹底活用レシピ

第19回 共有機能の使い方

この記事を読むのに必要な時間:およそ 1.5 分

ノート/ノートブックの共有機能

Evernoteには,ノートやノートブックを共有する機能があります。今回はその機能の使い方をPythonを例に説明します。

ノートの共有方法

まずノートの共有方法です。ノートを共有するときには,noteStore.shareNoteメソッドで共有キーを生成する必要があります。次に共有キーとguidとshardIdの組み合わせによって,共有用のURLを生成します。このURLを教えることで,他の人もノートを閲覧することができます。

shareKey = noteStore.shareNote(authToken, createdNote.guid)
url = "https://" + evernoteHost + "/shard/" + user.shardId + "/sh/" + createdNote.guid + "/" + shareKey

もし共有を終了したい場合にはstopSharingNoteメソッドを使用してください。もう一度同じノートを共有する場合には新しい共有キーが生成されますので,共有用URLも変更することになります。

ノートブックの共有方法

次にノートブックの共有についてですが,公開ノートブック(Public Notebook)と共有ノートブック(Shared Notebook)の2種類があります。公開ノートブックはノートブックに含まれているノートを世界中の誰にでも見られるようにする方法で,共有ノートブックは指定したユーザにのみ許可する方法です。

公開ノートブックの作り方は以下の通りです。

notebook = Types.Notebook()
notebook.name = "Public notebook"
notebook.published = True
notebook.publishing = Types.Publishing("test", None, False, "Publishing test")
createdNotebook = noteStore.createNotebook(authToken, notebook)
print "notebook: ", createdNotebook

通常のノートブック作成とは異なり,notebook.publishednotebook.publishingが必須になります。publishingに設定するTypes.Publishingは,第1引数が公開用のURLの断片を指定します。例えば上記のようにtestにすると,"https://{ホスト名}/pub/{ユーザ名}/test"が公開URLになります。既に使用している値を設定しようとするとエラーになりますので,ノートブックの名前を使用するなど,値が被らないようにしてください。第2引数と第3引数がソートのオプション,第4引数が公開ノートブックの説明になります。

共有ノートブックの作り方は以下の通りです。

notebook = Types.Notebook()
notebook.name = "Shared notebook"
createdNotebook = noteStore.createNotebook(authToken, notebook)
sharedNotebook = Types.SharedNotebook()
sharedNotebook.notebookGuid = createdNotebook.guid
sharedNotebook.email = "test@example.com"
sharedNotebook.requireLogin = True
sharedNotebook.notebookModifiable = False
createdSharedNotebook = noteStore.createSharedNotebook(authToken, sharedNotebook)

Types.SharedNotebookのインスタンスに共有したいノートブックのguidと共有したいユーザのEvernote登録メールアドレスを設定します。ログインの要求やノートブックの編集許可のオプション等もあります。ノートブックの編集許可はプレミアムユーザのみの機能です。もし2人以上のユーザに共有したい場合は,ユーザのメールアドレスごとにSharedNotebookを作成すれば良いです。

共有相手への連絡方法

注意しなければならないのは,ここでメールアドレスを設定しても,共有相手側には通知されません。メール等の手段で明示的に共有URLを相手に伝える必要があります。共有URLは"https://{ホスト名}/shard/{shardId}/share/{共有キー}"になります。

共有URLによってEvernoteアカウントにひもづけられたノートブックは,クライアント側では共有ノートブック一覧から見られます。プログラムで参照したい場合は,LinkedNotebooksメソッドを使います。例えば共有ノートブックの名前一覧を表示したければ以下のようにします。

linkedNotebooks = noteStore.listLinkedNotebooks(authToken)
for linkedNotebook in linkedNotebooks:
    print "  * ", linkedNotebook.shareName

今回は共有機能の使い方を説明しました。他者とノートやノートブックの共有を行うというのはこれからのEvernote連携を考えていく上で重要な機能の1つだと思いますのでぜひ使ってみてください。

著者プロフィール

加藤文彦(かとうふみひろ)

国立情報学研究所新領域融合研究センター特任研究員。普段はWebの研究に従事しており,Web上のデータを型付リンクで繋いでいくLinked Dataがトレンドになると信じて日々活動している。LinkedData.jp主宰。

twitter:fumi1

URL:http://fumi.me

コメント

コメントの記入