- 一个在印象笔记开发服务器https://sandbox.yinxiang.com上的账号。当你开发应用的时候你会连接到此服务器。
- 一个印象笔记 API key,它包括两个值:一个 consumer key 和一个 consumer secret。如果你还没有 API key,你可以到这里申请。
印象笔记 Python SDK和其它的印象笔记 SDK 均托管在Github上。你可以通过点击下载按钮将整个 SDK 作为一个 zip 文件下载下来。在解压缩之后,运行 python 安装脚本将库安装到你的系统中(需要管理员权限):
python setup.py install
这段脚本会安装 SDK (还有其它运行依赖的模块)并将所有东西放到一个 Python 知道的目录下,这样你不必担心在开始使用前会弄乱PYTHONPATH
。
或者,如果你使用 git 来管理项目,那你可以通过执行以下命令,将印象笔记 Python SDK 作为一个 git submodule 来安装。
1 2 3 |
|
无论何时发布了新版本的 SDK,你都可以执行git submodule update
,变更会自动反映到你的 SDK 中。不要忘记在在下载或升级之后运行setup.py
脚本。
最后,印象笔记 Python SDK 还可通过 Python Package Index 下载,并且可以通过pip
命令安装:
pip install evernote
在完成了上述安装步骤后,你应该能够在你的项目中引入印象笔记 Python SDK 了。为了测试一下,请在终端中运行下面的命令来确认印象笔记的类库可以正确导入:
$ python -c 'from evernote.api.client import EvernoteClient'
如果可以运行并正常退出,那就代表成功了。
与印象笔记云 API 进行交互需要一个认证 token。
当你的应用处在开发阶段时,你可以使用一个开发者 token。这个 token 完全可以像通过 OAuth 取回的认证 token 一样正常工作,但只能直接通过沙盒,我们的开发服务器来获取。这使开发者可以迅速开始整合印象笔记云 API 而无需先去实现整个 OAuth 流程。
1 2 3 4 5 |
|
一旦你的应用要投入实际使用,用户将需要通过 OAuth 对印象笔记进行认证。我们强烈建议在开发早期阶段使用开发者 token。
如果你在使用 Pyramid 或者 Django, 一定要查看附在下载的 SDK 中的示例应用程序——这些示例展示了如何在你的应用中集成对印象笔记的 OAuth 认证。
UserStore
是用来获取当前用户的相关信息的对象。为了创建一个UserStore
的实例,从EvernoteClient
调用get_user_store
方法。
1 2 3 |
|
注意: 大多数的印象笔记 API 文档都说明了对几乎所有的 API 函数都需要一个认证 token 参数。当你用一个有效的认证 token 初始化你的 EvernoteClient
实例后,在其他 API 调用中这个参数就会被忽略了。
NoteStore
是用来创建、更新和删除笔记、笔记本还有其他在用户帐户中可找到的印象笔记的数据的。就像使用UserStore
一样,创建一个NoteStore
的实例就只需要很简单地调用EvernoteClient.get_note_store
:
1 2 3 4 |
|
接下来,我们来看一下当你在使用印象笔记 API 是可能遇到的一些常见的数据类型:
Types.Note
表示用户帐户中的一个单条笔记。Types.Notebook
表示用户帐户中的一个笔记本。Types.Resource
实例描述了一个附加到笔记中的文件(图片,PDF 或其他文件类型)。 到这里阅读更多有关 Resource 对象的介绍.Types.Tag
实例;它们是帮助用户管理印象笔记中的信息的短文本标签。在你创建应用的时候还会使用到其他的一些类型;如果你还没使用过,那我们推荐你在完成本向导后再花几分钟看一下API 参考 和 核心概念。
一旦你的应用成功跟印象笔记完成认证,我们就可以来看几个大多数印象笔记开发者经常遇到的任务的小例子:
创建笔记
在印象笔记中创建一条笔记只需要创建一个 Types.Note
的实例,添加标题、内容并调用 NoteStore.createNote
:
1 2 3 4 5 6 |
|
这会在用户的默认笔记本中创建一个笔记。如果你要指定一个特定的笔记本,你需要在调用createNote
之前将笔记本的 GUID 赋给 note.notebookGUID
。
在Types.Note
中当然还有大量其他的属性可以让你调整,但这个是创建笔记过程的最简单的形式。
创建一个笔记本
笔记本创建起来跟笔记一样容易:创建一个新的Types.Notebook
对象,赋给它一个名字,然后调用NoteStore.createNotebook
:
1 2 3 4 5 |
|
这会创建一个名为“My Notebook”的新笔记本。