文档章节

Evernote(印象笔记)备份本机剪切板数据

ksfzhaohui
 ksfzhaohui
发布于 2017/10/29 21:11
字数 998
阅读 147
收藏 4
点赞 1
评论 0

前言
最近同学推荐了一款叫Ditto的软件,用来记录用户的剪贴板数据,包括:文字,图片,文件路径;windows系统本身只能保留最近的一次的剪贴板数据,所以有时候这个功能还是挺有用的;唯一不足的就是不能多端同步,因为一直用印象笔记,所以打算用印象笔记来备份本机剪切板数据,而且印象笔记也提供了强大的搜索功能。

准备
1.申请印象笔记 API Key
印象笔记本身提供了对外的api接口,我们可以申请API Key,地址:https://dev.yinxiang.com/doc/,获取API Key即可,如下图:

其中要注意的是应用的权限:基本权限和完全权限;基本权限包括创建笔记,列出笔记等;完全权限包括更新删除等功能。

申请完之后会获取一封邮件,如下图所示:

主要信息是API Key相关信息,以及告诉我们沙箱环境已经激活,生产环境还没有激活,占时可以在沙箱环境进行测试,并且沙箱环境需要重新创建帐号。

2.evernote-sdk下载
evernote提供了主流语言的SDK,java sdk对应的地址:https://github.com/evernote/evernote-sdk-java
src是sdk的源码,sample是相关demo,可以导入sample进行本地测试

3.用OAuth对印象笔记云 API进行认证
基于OAuth的认证流程由四部分组成:

生成一个临时的Token
请求用户认证
取回 Access Token
接下来的步骤,访问API

可以直接将sample中的oauth项目直接导入到Eclipse中,部署到tomcat中,直接访问:http://localhost:8080/EDAMWebTest/
对应的四个组成部分,界面中也有四个Action:

Actions
Get OAuth Request Token from Provider
Send user to get authorization
Get OAuth Access Token from Provider
List notebooks in account

分别点击,最终为了获取Access Token,会在页面显示User access token:xxxx

4.简单测试
有了access token,就可以用sample中的client进行简单的沙箱测试,client提供了EDAMDemo类,需要的AUTH_TOKEN就是刚刚获取的access token,复制进去就可以在沙箱环境(SANDBOX)进行简单的测试了。

收集剪贴板
java提供了类ClipboardOwner用来监听剪贴板数据的变动,剪贴板数据变动,就能直接获取剪贴板的数据,这样就简单了,直接将获取到的剪贴板数据通过Evernote Api将数据同步到印象笔记,部分代码如下:

if (clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)) {
    String text = (String) clipboard.getData(DataFlavor.stringFlavor);
    evernoteApi.createNoteText(text);
    clipboard.setContents(new StringSelection(text), this);
} else if (clipboard.isDataFlavorAvailable(DataFlavor.imageFlavor)) {
    final BufferedImage image = (BufferedImage) clipboard.getData(DataFlavor.imageFlavor);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write(image, "png", out);
    Transferable trans = new Transferable() {
               ......
    };
    evernoteApi.createNoteImage("IMAGE:" + new Date(), out.toByteArray());
    clipboard.setContents(trans, this);
} else if (clipboard.isDataFlavorAvailable(DataFlavor.javaFileListFlavor)) {
    @SuppressWarnings("unchecked")
    List<File> array = (List<File>) clipboard.getData(DataFlavor.javaFileListFlavor);
    for (File file : array) {
        evernoteApi.createNoteText(file.getPath());
    }
    clipboard.setContents(contents, this);
} else {
    logger.info("未知的类型");
}

代码中主要对三种剪贴板数据类型进行了处理,分别是:DataFlavor.stringFlavor,DataFlavor.imageFlavor和DataFlavor.javaFileListFlavor;对应的是文本,图片和文件,文件只同步了文件的具体路径。

请求激活生产环境
访问地址:https://dev.yinxiang.com/support/,点击“激活API Key”;要求填写具体信息,尽量详细点,然后提示你在2-3个工作日给你激活。

代码做简单修改就可以直接在生产环境运行了,主要修改部分代码:

EvernoteApi.Sandbox.class改成EvernoteApi.Yinxiang.class
EvernoteService.Sandbox改成EvernoteService.YINXIANG

改完之后接下来和在沙箱环境是类似的,也需要先进行授权,然后获取access token,为了方便,分别提供了在代码中提供了两个bat文件,用来处理这两步,针对每个用户只需要获取一次就可以了。

具体代码地址:
gitee:https://gitee.com/OutOfMemory/Clipboard
github:https://github.com/ksfzhaohui/Clipboard

运行效果
最后的运行效果,每次执行复制操作,在印象笔记里面就会出现复制的内容:

© 著作权归作者所有

共有 人打赏支持
ksfzhaohui

ksfzhaohui

粉丝 303
博文 128
码字总数 158547
作品 3
南京
高级程序员
7 款 Mac 工具,提高你的效率!

从 2014 到现在,为了提升自己的效率,尝试过上百款工具,最终留下了这 7 款,如果文章中提到的工具大家感兴趣的话,后续会介绍具体使用技巧。 Evernote 印象笔记(Evernote)用 2 年了,几乎每...

陈宇明
01/28
0
0
Evernote 正式进入中文市场,新名字:印象笔记

跨平台的云笔记应用 Evernote 正式进军中文市场,并入乡随俗起了一个非常诗意的名字:印象笔记。 Evernote 此举进入中文市场可谓准备充分。这家来自美国加州的公司还为中文版印象笔记注册了一...

景德真人
2012/05/11
3.5K
40
IFTTT Evernote 自动生成笔记

当我们看到某个博客博文不错,想自动更新到笔记下,以便方便离线随时查看,也不至于等要看的时候却忘记了网址。这个可以通过IFTTT+Evernote来实现。下面来说说如何实现: 1. 应用说明: IFTT...

小运
2013/12/20
0
1
印象笔记承认 Bug 导致 Mac 用户数据丢失

今天,印象笔记向用户发出邮件,确认 Mac 版印象笔记中存在严重的 Bug,导致小部分人的数据丢失。当用户使用 Mac 版印象笔记时,图像和其他附件可能会被删除,文本没有出现问题。 我们在一些...

凝小紫
2016/10/14
3.6K
15
值得珍藏:印象笔记Evernote中进行高级搜索的语法分享

印象笔记/Evernote中的搜索我觉得有三大特色: 使用专用语法进行高级搜索 高级版用户支持在pdf、图片中搜索文字 把搜索保存起来,加入快捷方式 今天我想把我搜集的关于在印象笔记Evernote里进...

yaotingxi
2015/10/30
0
0
ubuntu 的 Evernote 截图工具--ElsaClipper

ElsaClipper 是一个 ubuntu 上的 Evernote 截图工具, 可以截屏并做一些小修改,然后上传到Evernote,同时支持Evernote国际版和印象笔记。

ChanningBJ
2014/06/19
229
0
Evernote 转移笔记到 OneNote

Evernote最近更改了使用协议,免费版只允许2台设备进行同步,对于拥有超过2台设备的人来说,没办法在所有设备中进行数据同步了,但付费功能实在是没有任何吸引力,所以最近把笔记转移到OneNo...

RDeveloper
2016/08/23
32
0
7 款印象笔记开源替代

印象笔记自 08年正式发布至今,已经拥有数以千万计的普通用户,百万计付费用户。不得不承认,印象笔记确实很强大,给众多用户带来诸多便利。 对于广大热爱开源的程序员来说,遗憾的是,它是闭...

催呀催呀
2016/08/05
11.1K
33
使用 Python 操作 Evernote API

本文作者: 伯乐在线 - LittleCoder 。未经作者许可,禁止转载! 欢迎加入伯乐在线作者团队。 Evernote本身就是很好的笔记应用,其API又赋予了我们更多的自由,值得花点时间尝试。 本文将结合...

刘星石
2016/04/01
8
0
Evernote 快捷键

最近在研究evernote的快捷键,发现中文没有什么介绍的,于是上官方网站,最后找到。不过是英文版的。现在没有时间翻译中文,所以先让大家看看吧,如果大家有兴趣,可以尝试着帮楼主一起翻译下...

Galy_绿
2016/03/30
21
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用 Python 实现打飞机,让子弹飞吧!

所用技术和软件 python 2.7 pygame 1.9.3 pyCharm 准备工作 安装好 pygame 在第一次使用 pygame 的时候,pyCharm 会自动 install pygame。 下载好使用的素材。 技术实现 初始化 pygame 首先要...

猫咪编程
9分钟前
0
0
MySQL的行锁和表锁

简单总结一下行锁和表锁。 行锁 每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 表锁 每次操作锁住整张表。开销小,加锁快;不会出...

to_ln
11分钟前
0
0
Java IO类库之字节数组输入流ByteArrayInputStream

一、ByteArrayInputStream字节数组输入流介绍 ByteArrayInputStream是字节数组输入流,继承自InputStream。它的内部包含一个缓冲区,是一个字节数组,缓冲数组用于保存从流中读取的字节数据,...

老韭菜
13分钟前
0
0
iOS安全应该做哪些事情

1. 尽量使用HTTPS协议。 2. 密码提交的时候,密码使用SHA256加密后传输,MD5等经过哈希碰撞已经可以推算出原文。 3. 密码提交的时候,可以加盐。 4. 密码保存在本地的时候,尽量使用钥匙串保...

HOrange
20分钟前
0
0
react native 注意事项

1. 环境参考官网 android studio 必装 java jdk安装 1.8版本(环境建议自己一步一步配置,切记不要 apt ) 2.有改变编译内容发现 会白屏,然后APP消失,请卸载原来的测试 appinfo (连续两次...

304158
26分钟前
0
0
FOMO游戏代码解析

源代码在此处

怎当她临去时秋波那一转
31分钟前
1
0
EOS智能合约与DApp开发入门

EOS的是Block.One主导研发的一个区块链底层公链系统,它专门为支撑商业去中心化 应用(Decentralized Application)而设计,其代码开源。 比特币被称为区块链1.0,因为它开辟了数字加密货币的...

笔阁
43分钟前
1
0
编译cjson到dll

https://blog.csdn.net/mengzhisuoliu/article/details/52203724 编译完成后 是纯lua实现的json decode 的10倍以上...

梦想游戏人
53分钟前
0
0
JS基础- Date 对象

Date 对象 Date 对象用于处理日期和时间。 创建 Date 对象的语法: var myDate=new Date() 注释:Date 对象会自动把当前日期和时间保存为其初始值。 Date 对象属性 属性 描述 constructor 返...

ZHAO_JH
55分钟前
0
0
Python数据分析numpy(1)

Python开源的科学计算基础库 1.表示N维数组对象ndarray 2.线性代数、傅里叶变换、随机数生成 3.广播函数,整合c++、c 一.数据的维度 1.数据 2.数据维度 3.一维数据 (1)特点 (2)Python中的...

十年磨一剑3344
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部