近期看 Evernote API 的时候发现印象笔记对 Python 非常友好,就试了一下各类操作。
刚好一直觉得用过的那些备忘、代办软件功能太乱还不如拿记事本或者短信记。就用印象笔记写一个,反正摆脱不了印象笔记,就干脆都存在里面。
用过一段时间以后发现备份和检索功能还不错,也可以把一些文档做链接放进去。
其实身边的 API 都可以通过 Python 用起来,简单的利用也会有不错的效果。
有什么想法或者问题,欢迎和我分享!
演示用的软件可以在我的Github,或者360 云盘(0fe0)上下载。
我把简单的演示放在了优酷上,如果对演示感兴趣可以看下去。
演示中没有示范如何安装 evernote 的包,pip install evernote
一下就好了。
演示主要分为配置 Secret Key 、使用、配置快捷启动,具体的文字说明我写在了后面。
pip install evernote
:安装 evernote 包pip install requests
:如需要使用 Oauth ,安装 requests 包content.enex
调整PackMemo.py
4-6 行配置python PackMemo.py
:将会自动登录完成日志创建与存储Win+R pm <CR>
: Windows 系统内配置好快捷启动后即可使用Win+R %systemroot%/system32 <CR>
:打开文件夹PackMemo.bat
创建快捷方式并重命名为pm
pm
拖入文件夹e = EvernoteController()
e.create_notebook('Notebook1')
e.create_note('Hello', '<en-note>Hello, world!</en-note>', 'Notebook1')
e.create_notebook('Notebook2')
e.show_notes()
e.move_note('Notebook1/Hello', 'Notebook2')
e.show_notes()
e.delete_note('Notebook2/Hello')
# deleting notebook can only be available when you use developer token for your own evernote
e.delete_notebook('Notebook1')
e.delete_notebook('Notebook2')
e.show_notes()
myfile
方法确定为Notebook/Note
印象笔记有两种权限类型,开发者权限和普通权限。
获得授权后会获得一个 Token ,在各种方法中都会使用到
通过这个 Token 即可获取 EvernoteClient, userStore, noteStore
if SANDBOX:
client = EvernoteClient(token=self.token)
else:
client = EvernoteClient(token=self.token, service_host=SERVICE_HOST)
userStore = client.get_user_store()
noteStore = client.get_note_store()
以Function: NoteStore.deleteNote为例演示如何使用 API ,以下为官方介绍:
首先,由于其为 NoteStore 类的方法,所以调用的方式为NoteStore.deleteNote(token, guid)
其次, token 为上述的开发者 Token 或者有兴趣的话为 OAuth 获取到的 token
再次,从图中第七行可以看出, guid 的为GUID of the note to delete
,下面是Note的介绍
那么,只要获取到 Note ,就可以获得 guid 。
所以,最后一步,这里牵扯到印象笔记的数据结构,了解即可
值得一提的是,某些操作需要特殊的权限, sandbox 中和使用开发者 Token 时可以使用不代表外部可以使用
希望读完这篇文章能对你有帮助,有什么不足之处万望指正(鞠躬)。
有什么想法或者想要关注我的更新,欢迎来Github上Star或者Fork。
160517
LittleCoder
EOF
1
mongost3t 2016-05-18 18:27:38 +08:00
evernote 包不支持 python3 ,创建 note 还得手动加 en-note 的 tag ,一大堆 thrift ,不知道友好在哪……
倒是挺稳定,申请 production api 也会给批 |
2
NxnXgpuPSfsIT OP @mongost3t
py3 的 sdk 可以用这个 https://github.com/evernote/evernote-sdk-python3 ,我用下来基础操作没什么问题,可以一试。 说友好是因为入门的介绍和例程都给的很到位,过渡到 api 表完全没有瓶颈。 <en-note>是别人的文件内容嘛,为了区分自家的标记和普通的标记。 多了一个<en-note>我感觉还是好处多一点,就最常见的,文章里的附件、图片什么的只要写<en-media>就行。 看来是同道中人,之后开发可以多交流:) |