Authentication 生成Evernote专用链接的正确方法是什么?

Authentication 生成Evernote专用链接的正确方法是什么?,authentication,evernote,Authentication,Evernote,我想通过编程生成到Evernote便笺的私有便笺链接。(在我的场景中,只有我作为开发人员使用我的auth令牌进行身份验证—不涉及OAuth,但我假设过程是相同的。) 我在上读过一篇文章“注释链接-从任何地方直接链接到单个注释”,但它涵盖了evernote://... 仅链接 生成私有Evernote链接的正确方法是什么 这取决于你想做什么。https://链接将在浏览器中打开,而evernote://链接将在客户端应用程序中打开(如果已安装) 私下共享便条意味着你将便条共享给个人。只有这些个人在

我想通过编程生成到Evernote便笺的私有便笺链接。(在我的场景中,只有我作为开发人员使用我的auth令牌进行身份验证—不涉及OAuth,但我假设过程是相同的。)

我在上读过一篇文章“注释链接-从任何地方直接链接到单个注释”,但它涵盖了evernote://... 仅链接

生成私有Evernote链接的正确方法是什么

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

  • 私下共享便条意味着你将便条共享给个人。只有这些个人在经过身份验证后才能访问便笺。相反,公开共享意味着你与每个知道url的人共享便笺。 根据我对你案件的了解,我想说你不必“分享”一张纸条。您不想“邀请”某人访问便笺,只希望便笺的所有者可以通过链接访问便笺。我说得对吗

  • 如果是这样的话,您必须遵守以下文档: 主要困难在于处理文件中提到的不同案件


    希望这能有所帮助。

    您必须共享一张便条,并且只将URL发送给有问题的人。Evernote URL的设计目的是防止人们猜测它们,因此,如果您只与其他人共享URL,您可以合理地假设他们是唯一可以访问注释的人。URL方案如下所示

    [EN_URL]/shard/[shardId]/sh/[noteGuid]/[shareKey]
    
    在哪里

    • [EN_URL]是您的URL(用于沙箱或生产服务)

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

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

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

    您可以在Evernote API文档中看到所有这些:

    请参见下面的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)
    
    从evernote.api.client导入EvernoteClient
    将evernote.edam.type.t类型导入为类型
    EN_URL=”https://sandbox.evernote.com"
    evernote\u auth\u token=“此处为您的授权或开发令牌”
    client=EvernoteClient(令牌=evernote\u auth\u令牌,sandbox=True)
    user\u store=client.get\u user\u store()
    note\u store=client.get\u note\u store()
    note=类型。note()#创建一个note对象
    #定义一个示例注释
    注意:title='some title'
    note.content=“”
    注:内容+=“”
    note.content+='+'hi mom!'+'
    注:内容+=“” note=note_store.createNote(note)#创建注释 user=user\u store.getUser(evernote\u auth\u令牌) shardId=user.shardId shareKey=note\u store.shareNote(evernote\u auth\u令牌,note.guid) evernote_url=“%s/shard/%s/sh/%s/%s”%”(EN_url,shardId,note.guid,shareKey)
    回想起来,我的第一个问题有点愚蠢,因此我将编辑我的问题以删除该问题。关于你在#2中向我提出的问题-你完全正确-我也将为此改写我的问题。这篇文章讨论了evernote://... 我抓起一个指向我自己笔记的链接,看到的格式是:https://*host*.evernote.com/shard/*shardID*/nl/*userid*/*noteguid*确实有效,但由于链接结构可能会发生变化,它感觉很脆弱。我更希望找到一篇关于如何构建link.FYI的Evernote文章,刚才看到shardID已经被弃用。然而,shardID仍然在许多其他文章中被引用。是的,我也注意到了。但是作为它在全新版本的iOS SDK中使用,我想说,现在使用它是非常安全的。我会向Evernote询问这种不稳定的情况,并告知您。非常感谢您,您还可以问一下他们是否有关于如何构建私有网络的正式定义吗http://... 注意链接?我终于在Evernote开发论坛上找到了https://*host*.evernote.com/shard/*shardID*/nl/*userid*/*noteguid*格式确实是规范。如果您编辑您的答案以反映我更改了我的问题(根据我上面的评论-感谢您提出的好观点)并将此格式作为答案,我会将其标记为已接受。我希望获取便笺的私有URL,而不是生成共享便笺的URL。在这种情况下,共享不适用。