印象笔记 Python SDK 快速入门指南

本向导的目的是描述如何下载、安装和配置印象笔记 Python SDK,并且展示其使用方法。如果一切顺利,10分钟之内你就可以完成本向导。


  • 准备工作
    1. 一个在印象笔记开发服务器https://sandbox.yinxiang.com上的账号。当你开发应用的时候你会连接到此服务器。
    2. 一个印象笔记 API key,它包括两个值:一个 consumer key 和一个 consumer secret。如果你还没有 API key,你可以到这里申请
  • 下载印象笔记 Python SDK

    印象笔记 Python SDK和其它的印象笔记 SDK 均托管在Github上。你可以通过点击下载按钮将整个 SDK 作为一个 zip 文件下载下来。在解压缩之后,运行 python 安装脚本将库安装到你的系统中(需要管理员权限):

    python setup.py install

    这段脚本会安装 SDK (还有其它运行依赖的模块)并将所有东西放到一个 Python 知道的目录下,这样你不必担心在开始使用前会弄乱PYTHONPATH

    或者,如果你使用 git 来管理项目,那你可以通过执行以下命令,将印象笔记 Python SDK 作为一个 git submodule 来安装。

    1 2 3
    git submodule add git://github.com/yinxiang-dev/evernote-sdk-python/ evernote
    git submodule init
    git submodule update
    view raw gistfile1.txt hosted with ❤ by GitHub

    无论何时发布了新版本的 SDK,你都可以执行git submodule update,变更会自动反映到你的 SDK 中。不要忘记在在下载或升级之后运行setup.py脚本。

    最后,印象笔记 Python SDK 还可通过 Python Package Index 下载,并且可以通过pip命令安装:

    pip install evernote

  • 测试 SDK

    在完成了上述安装步骤后,你应该能够在你的项目中引入印象笔记 Python SDK 了。为了测试一下,请在终端中运行下面的命令来确认印象笔记的类库可以正确导入:

    $ python -c 'from evernote.api.client import EvernoteClient'

    如果可以运行并正常退出,那就代表成功了。

  • 认证

    与印象笔记云 API 进行交互需要一个认证 token。

    当你的应用处在开发阶段时,你可以使用一个开发者 token。这个 token 完全可以像通过 OAuth 取回的认证 token 一样正常工作,但只能直接通过沙盒,我们的开发服务器来获取。这使开发者可以迅速开始整合印象笔记云 API 而无需先去实现整个 OAuth 流程。

    1 2 3 4 5
    dev_token = "put your dev token here"
    client = EvernoteClient(token=dev_token)
    userStore = client.get_user_store()
    user = userStore.getUser()
    print user.username
    view raw example.py hosted with ❤ by GitHub

    一旦你的应用要投入实际使用,用户将需要通过 OAuth 对印象笔记进行认证。我们强烈建议在开发早期阶段使用开发者 token。

    如果你在使用 Pyramid 或者 Django, 一定要查看附在下载的 SDK 中的示例应用程序——这些示例展示了如何在你的应用中集成对印象笔记的 OAuth 认证。

  • UserStore

    UserStore 是用来获取当前用户的相关信息的对象。为了创建一个UserStore的实例,从EvernoteClient调用get_user_store方法。

    1 2 3
    client = EvernoteClient(token=auth_token)
    userStore = client.get_user_store()
    user = userStore.getUser()
    view raw example.py hosted with ❤ by GitHub

    注意: 大多数的印象笔记 API 文档都说明了对几乎所有的 API 函数都需要一个认证 token 参数。当你用一个有效的认证 token 初始化你的 EvernoteClient 实例后,在其他 API 调用中这个参数就会被忽略了。

  • NoteStore

    NoteStore 是用来创建、更新和删除笔记、笔记本还有其他在用户帐户中可找到的印象笔记的数据的。就像使用UserStore一样,创建一个NoteStore的实例就只需要很简单地调用EvernoteClient.get_note_store

    1 2 3 4
    noteStore = client.get_note_store()
    notebooks = noteStore.listNotebooks()
    for n in notebooks:
    print n.name
    view raw example.py hosted with ❤ by GitHub
  • 常见数据类型

    接下来,我们来看一下当你在使用印象笔记 API 是可能遇到的一些常见的数据类型:

    1. Types.Note 表示用户帐户中的一个单条笔记。
    2. Types.Notebook 表示用户帐户中的一个笔记本。
    3. 一个 Types.Resource 实例描述了一个附加到笔记中的文件(图片,PDF 或其他文件类型)。 到这里阅读更多有关 Resource 对象的介绍.
    4. 笔记可以有一个或多个附加到自己的 Types.Tag 实例;它们是帮助用户管理印象笔记中的信息的短文本标签。

    在你创建应用的时候还会使用到其他的一些类型;如果你还没使用过,那我们推荐你在完成本向导后再花几分钟看一下API 参考核心概念

  • 常见任务

    一旦你的应用成功跟印象笔记完成认证,我们就可以来看几个大多数印象笔记开发者经常遇到的任务的小例子:

    创建笔记

    在印象笔记中创建一条笔记只需要创建一个 Types.Note 的实例,添加标题、内容并调用 NoteStore.createNote

    1 2 3 4 5 6
    noteStore = client.get_note_store()
    note = Types.Note()
    note.title = "I'm a test note!"
    note.content = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">'
    note.content += '<en-note>Hello, world!</en-note>'
    note = noteStore.createNote(note)
    view raw example.py hosted with ❤ by GitHub

    这会在用户的默认笔记本中创建一个笔记。如果你要指定一个特定的笔记本,你需要在调用createNote之前将笔记本的 GUID 赋给 note.notebookGUID

    Types.Note中当然还有大量其他的属性可以让你调整,但这个是创建笔记过程的最简单的形式。

    创建一个笔记本

    笔记本创建起来跟笔记一样容易:创建一个新的Types.Notebook对象,赋给它一个名字,然后调用NoteStore.createNotebook

    1 2 3 4 5
    noteStore = client.get_note_store()
    notebook = Types.Notebook()
    notebook.name = "My Notebook"
    notebook = noteStore.createNotebook(notebook)
    print notebook.guid
    view raw example.py hosted with ❤ by GitHub

    这会创建一个名为“My Notebook”的新笔记本。

  • 总结

    现在你已经了解了基础的东西,我们建议你继续看一下我们的核心概念页面并学习对印象笔记开发者来说不同的常见任务。最后,像以往一样,如果你需要任何协助,尽管跟我们联系

请填写下表,寻求印象笔记开发者支持团队的帮助
CAPTCHA 看不清?换一张
当你准备好在生产环境部署你的应用时,请填写下表以在我们的生产环境中激活你的 API Key。
以下情况,请勿提交激活申请:
1.仅供个人使用的应用,请使用开发者Token
2.测试请使用沙箱(Sandbox)环境,或使用开发者Token
3.违反Evernote API License条款的应用。

请详细介绍应用。

请解释下你的应用是如何使用创建、读取和更新笔记的权限的。
CAPTCHA 看不清?换一张
请填写下表,请求将你的应用加入到百宝箱中。
CAPTCHA 看不清?换一张
请完成下表以提交Webhook激活请求

请解释下你的应用将如何使用Webhook
CAPTCHA 看不清?换一张
Complete the form below to request your complimentary 1-year Squarespace account.