共享(停止共享)笔记

如何开始或停止共享单条笔记,如何读取印象笔记帐户的所有共享笔记的列表。

  • 共享单条笔记

    单条笔记可通过两种方法共享:公开(通过创建公开笔记链接)或通过email。后者严格来说并不是分享因为它是把一份笔记副本作邮件发送出去了,所以我们将重点讨论前者:通过创建公开链接来分享笔记。注意:我们没法把笔记只共享给某一个人;任何知道这条笔记的公开链接的人都能够查看这条笔记。

    为了共享一条笔记,你需要以下信息:

    • 你想要共享的笔记的 GUID。
    • 被分享的笔记所在的 Shard 的 ID。
    • 一个有效的认证 token 或者是开发者 token
    • 初始化过的 NoteStore.ClientUserStore.Client的实例。

    Shard 的 ID 可以通过在运行时查询 UserStore 来确定:

    假设所有这些都已就绪,那么共享笔记实际上就相当容易了。通过调用 NoteStore.shareNote 并且传递一个认证 token 和你要共享的笔记的 GUID,你会从印象笔记云 API 得到一个 Share Key 作为函数返回值,结合笔记的 GUID 一起,便可以查看笔记的只读版本。

    下面这段代码说明了整个过程是如何工作的:

    假定一切正常,那么上面的函数会返回一个公开笔记的链接,它看起来像这样:

    https://sandbox.evernote.com/shard/s1/sh/36dd7123-12c0-457a-a6d0-75555fcc7770/3afc29de3493d0d333b54cf1822be92c

    URL 的最后两部分数据是笔记的 GUID 和 Share Key

  • 停止共享一条笔记

    这个就像1+1=2一样简单。

    你需要一个初始化过的 NoteStore.Client 实例, 一个有效的认证 token和要停止共享的笔记的 GUID。这些就绪之后,只要调用 NoteStore.stopSharingNote就可以了:

  • 列出帐户所有共享的笔记

    为了搜索用户帐户中所有的共享笔记,我们需要创建一个NodeFilter对象并且将它的words成员设置为sharedate:*(它表示:这条笔记是共享的而何时共享的则无所谓)。下面是一个函数,它获取用户帐户的所有共享笔记(任意最多500条)。

    在创建NoteFilter实例并填入数据后,我们重复调用NoteStore.findNotes,一次请求50条笔记,将响应收集到一个sharedNotes集合中。一旦到了我们要求的最大值或者我们的sharedNotes集合不再能被50整除(意味着最近一次对NoteStore.findNotes的调用返回的笔记条数小于50),我们就返回sharedNotes