将博客 RSS 推送到 kindle 阅读

  月初买了 kindle,用免费送的 7 天 kindle unlimited 在 kindle 商店薅了不少羊毛,然后发现自己确实没有想象的那么爱看书了……【
  很怀念当初在图书馆一呆就是一下午还津津有味地做笔记的时光。不过也可能是 KU 里的书太无聊了,毕竟卖得出去怎么会让你免费看嘛【。
  于是试图用 kindle 来接收 RSS 推送,在 kindle 上看大家的 blog,感谢 れいわ ㋿ 🍓 介绍的 KindleEar 方案,花了一下午的时间推送成功了,就是推送下来的 mobi 文件很符合针对程序员审美的刻板印象……emmmmmmm 对不起,我还是要再花时间把这个格式修改一下 _(:3」∠)_
  本来想说草莓县有县民也需要 RSS 推送所以整理了一下笔记,然后后知后觉地想起来,已经没有草莓县了啊……


.+†+.
(´-ι_-`)

准备工作

  需要用到的材料:

  • 能够访问 google 的梯子
  • 一个 google 账号
  • 一个属于自己的域名(可选)

在 GAE 上安装 KindleEar

解锁应用上传权限

  进入 Google 账号安全设置 页面,找到【安全性较低的应用的访问权限】选项并解锁。

创建 GAE 应用

  1. 进入 Google Cloud 界面,点击导航栏上的【选择项目】按钮,在弹出窗口的右上角点击【新建项目】,填写项目名称。如果你输入的项目名称由英文和数字组成且不与现有项目重复,google 会自动将你项目的 appid 设置成相同的字符串,比如我的项目名称和 appid 就都是 co5kindle,没有重复;
  2. 点击右上角的 按钮打开命令行工具,输入 gcloud beta app create并执行;
  3. 命令执行后会出现 Which region would you like to choose? 询问应用托管服务器位置(其实在哪里不重要),在 Please enter your numeric choice: 之后输入数字 1,稍等片刻即可完成 GAE 应用的创建。

  Ps. 另外还有一种方式是在图形化菜单上创建,选中你创建的 kindle 项目,在左边的下拉菜单中找到【App Engine】,按照提示创建 GAE 应用并选择服务器地区。选择语言之后会要求你添加一个包含信用卡信息的结算账户,看到这个提示的时候其实已经创建成功了,直接进行下一步就好。

上传 KindleEar 程序

  1. 选中你创建的 kindle 项目,点击右上角的 按钮打开命令行工具,输入如下代码并执行:

1
2
3
4
rm -f uploader.sh* && \
wget https://raw.githubusercontent.com/kindlefere/KindleEar-Uploader/master/uploader.sh && \
chmod +x uploader.sh && \
./uploader.sh

  2. 等待程序自动执行,准备完毕后会提示你输入 gmail 地址和前面注册好的项目的 appid,输入完毕后提交等待它运行完毕,KindleEar 就已经安装到 GAE 的托管服务器上了。

还原应用安全权限

  进入 Google 账号安全设置 页面,找到【安全性较低的应用的访问权限】选项并重新锁定。

KindleEar 推送设置

  完成上面的步骤后,访问 【appid】.appspot.com 就可以进入搭建好的 KindleEar 页面了。

修改默认登录密码

  KindleEar 的默认登录名和密码都是 admin,登录后可以在【账户管理】中更改密码或者创建其它登录名。
  你为什么要取个这么长的名字啊我快要失去打字的耐心了 (╯°Д°)╯︵┴┴

添加订阅源

  进入【我的订阅】页面后,在【自定义 RSS】中的【书籍标题】文本框内输入你的订阅源名称,【URL】中输入你的订阅源地址,点击【添加】即可。
  需要注意的是 KindleEar 似乎只支持 xml 格式的订阅源,如果你的订阅源格式有问题,请自行搜索解决方法 :-cmx-doge-:
  另外 KindleEar 也有一些自带的订阅源,可以自行选择感兴趣的进行订阅。

设置推送时间 & 格式

  进入【设置】页面输入你的 Kindle e-mail 地址,可以在 Kindle 的【设置→您的账户】页面的最下方找到,也可以登录亚马逊后台更改。
  【投递日】决定了推送订阅源的频率,【自定义 RSS】中的【最旧文章】决定了收录文章的范围,我个人建议每周推送一次并把文章范围设置为一星期,毕竟 Kindle 一般使用的过程中是不开网的。
  另外还有推送标题和封面之类的一些个性化设置,按需求自己修改就好,没什么可讲的……

将 gmail 加入到 Kindle 邮件信任列表

  访问亚马逊商城,点击搜索栏下的【Kindle 电子书】,菜单中会出现【我的内容和设备】。进入后选择最右边的【设置】,下拉找到【个人文档设置】,在【已认可的发件人电子邮箱列表】中添加你创建 GAE 应用的 gmail 账号。
  cn 商店的设置地址如下:简直是反人类级别的难找 (╯°Д°)╯︵┴┴

设置 GAE 应用的发信人

  回到 Google Cloud 界面,在左边的菜单栏中打开【App Engine→设置】,地址是 https://console.cloud.google.com/appengine/settings,理论上会自动跳转到你的 kindle 应用,如果没有请自行选择。其实 appid 可以手动加在这个地址里但是太长了影响排版效果我就删了 :-cmx-doge-:
  进入最右侧的【电子邮件发件人】页面,点击【添加已获授权的电子邮件发件人】,输入你的 gmail 邮箱并回车确认,等你的邮箱变成一个灰色的圆角按钮之后点击右下角的【添加】,邮箱出现在【电子邮件发件人】列表中就是设置成功了。

测试 RSS 推送

  进入搭建好的 KindleEar,点击【高级设置】,选择全部 RSS 订阅源并点击【推送】,等待大约 3 分钟左右就可以在【投递日志】中查看推送情况。如果投递状态显示 ok,那么将 Kindle 连上网后就可以收到订阅的信息了。

为 KindleEar 设置独立域名

  GAE 为每个应用都提供了一个域名 【appid】.appspot.com ,但因为某些众所周知的原因,这个域名在墙内是无法访问的 emmmm
  通过设置独立域名可以解决这个问题,但就我个人使用体验来讲,初次访问似乎还是需要翻墙的,后续访问就可以直连了,不知道是什么原理。

准备一个域名

  域名自己买一个,还是出于某些众所周知的原因,千万不要在阿里云注册
  不一定要顶级域名,二级域名也是可以的,比如我的 KindleEar 地址就是:

验证域名权限

  1. 进入 Google 网站管理员中心,点击【添加属性】按钮,输入你准备好的域名;
  2. 选择【备用方法】中的【域名提供商】,直接选【其他】就行,然后复制提供给你的 TXT 记录代码;
  3. 打开你的域名管理后台,在自定义 DNS 设置中选择类型为【TXT】,然后将刚才复制的代码粘贴进去并保存;
  4. DNS 更新的时间为即时~24 小时不等,我的域名是在 dynadot 注册的,可选最快的刷新时间是 5 分钟,所以更新 DNS 信息 5 分钟之后左右再回到域名验证界面点击【验证】按钮,如果不成功就再等一会,分配给你的 DNS 代码应该是固定的。

设置域名映射

  1. 域名验证成功后,在 GAE 设置 中点击进入【自定义网域】界面,选中你验证好的域名并保存;
  2. 保存后 Google 会给你提供 9 条 DNS 记录,将他们依次添加到你的域名后台中,需要注意的是类型为 CNAME 的那一条记录需要在域名前面添加 www.

  最后在 GAE 设置界面点击【完成】按钮,你的自定义域名就已经出现在页面中了。【SSL 安全设置】底下会有个蓝色的 loading 图标,等它不转了之后就可以通过 https + 自定义域名访问 KindleEar 了,如果出现 404 请尝试翻墙,第一次访问成功后之后都可以直连访问(如果你的域名没有被墙的话)。

参考资料