生成Evernote笔记的私人链接的正确方法是什么?

时间:2014-08-05 19:33:32

标签: authentication evernote

我想以编程方式生成指向Evernote笔记的私人备注链接。 (在我的场景中,只有我作为开发人员使用我的身份验证令牌进行身份验证 - 不涉及OAuth,但我假设流程将是相同的。)

我在https://dev.evernote.com/doc/articles/note_links.php阅读了文章“Note Links - 直接链接到任何地方的个别笔记”,但它仅涵盖了evernote:// ...链接。

生成私人Evernote笔记链接的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

  1. 这取决于你想做什么。 https://链接将在您的浏览器中打开,而evernote://将在客户端应用程序中打开(如果安装了一个)。

  2. 私下分享便条意味着您与个人共享便条。只有这些人才能在通过身份验证后访问该笔记。相反,公共共享意味着您与知道该网址的每个人共享该笔记。 根据我对你的案例的理解,我说你不必分享"分享"一张纸条。你不想要"邀请"某人可以访问笔记,但只是希望笔记的所有者可以通过链接访问该笔记。我是对的吗?

  3. 如果是这样,您必须坚持https://dev.evernote.com/doc/articles/note_links.php处的文档 主要的困难是处理文件中提到的不同案例。

    希望这有帮助。

答案 1 :(得分:0)

您必须共享一个笔记,并仅将URL发送给相关人员。 Evernote URL旨在防止人们猜测它们,因此如果您只与另一个人共享该URL,您可以合理地假设他们是唯一可以访问该笔记的人。 URL方案位于

之下
[EN_URL]/shard/[shardId]/sh/[noteGuid]/[shareKey]

,其中

  • [EN_URL]是您的网址(沙箱的https://sandbox.evernote.com或制作服务的https://www.evernote.com

  • [shardId]注释用户所在的Shard id(可以通过userStore.getUser()。shardId访问)

  • [noteGuid]是注释guid(可以通过note.guid访问)

  • [shareKey]是共享笔记的共享密钥(从note.shareNote()方法返回)

您可以在Evernote API文档中看到所有这些内容:https://dev.evernote.com/doc/articles/note-sharing.php

请参阅下面的sanbox python示例:

from evernote.api.client import EvernoteClient
import evernote.edam.type.ttypes as Types

EN_URL="https://sandbox.evernote.com"
evernote_auth_token = "Your auth or dev token here"

client = EvernoteClient(token=evernote_auth_token, sandbox=True)
user_store = client.get_user_store()
note_store = client.get_note_store()    

note = Types.Note() #create a note object

#define a sample note           
note.title='some title'
note.content = '<?xml version="1.0" encoding="UTF-8"?>'
note.content += '<!DOCTYPE en-note SYSTEM ' \
    '"http://xml.evernote.com/pub/enml2.dtd">'
note.content += '<en-note>'+'hi mom!'+'<br/>'
note.content += '</en-note>'

note=note_store.createNote(note) # create the note

user=user_store.getUser(evernote_auth_token)
shardId=user.shardId
shareKey=note_store.shareNote(evernote_auth_token, note.guid)
evernote_url="%s/shard/%s/sh/%s/%s" % (EN_URL,shardId,note.guid,shareKey)