KindleEar 搭建教程:推送 RSS 订阅到 Kindle

* 特别提示:自 2019 年 11 月 30 日起,必须向 Google Cloud 的结算账户添加支持美元支付的信用卡(如 Visa、MastCard 等)才能正常使用 GAE,绑卡后只要不超资源限额仍可持续免费使用。

KindleEar 是一款开源的 Python 程序,由网友 cdhigh 发起,托管在 Github。它可运行在免费的 Google APP Engine(GAE)上,把 RSS 生成排版精美的杂志模式的 MOBI 文件,并按照设置定时自动推送至你的 Kindle。如果你有 Python 和前端基础,还可以自定义排版,生成你需要的最完美的 MOBI 文件。

▲ KindleEar 搭建成功后的首页界面

▲ KindleEar 推送到 Kindle 的阅读效果

KindleEar 目前的功能有:

  • 支持类似 Calibre 的 recipe 格式的不限量 RSS/ATOM 或网页内容收集
  • 不限量自定义 RSS,直接输入 RSS/ATOM 链接和标题即可自动推送
  • 多账号管理,支持多用户和多 Kindle
  • 生成带图的杂志格式 mobi 或带图的有目录 epub
  • 自动每天定时推送
  • 强大而且方便的邮件中转服务
  • 和 Evernote/Pocket/Instapaper 等系统的集成

下面这个是体验账号,可以添加一个 RSS 测试推送一下(注意按照设置页面提示添加信任列表)。

看到这些让人心动、那些收费的推送服务网站才有的功能是不是很心动了?其实搭建起来其实很简单,如果你什么都不懂,只要按照本文所给出的步骤一步一步操作就可以搞定。本文是更新后的教程,原方法需要配置上传环境,较为繁琐,现在只需要保证能科学上网,通过 Google 云端 Shell,只需要一行命令就可以搞定。现在,立即开始搭建自己的私有专属的 RSS 推送服务器吧!

目录

一、准备工作
1、能够科(fan)学(qiang)上网
2、注册 Google/Gmail 账号
3、对 Google 账号进行安全设置
4、创建一个 Google Cloud 项目
5、向结算账户添加支付方式
6、创建 Google App Engine 应用
7、授权 GAE 用 Gmail 发信
二、上传应用
方法一:自动上传(强烈推荐!)
方法二:手动上传
三、访问应用
四、设置推送
1、添加订阅
2、设置推送
3、投递日志
4、账户管理
5、高级设置
6、网友分享
五、常见问题
1、访问页面提示 internal serve error
2、投递状态显示 wrong SRC_EMAIL
3、如何修改 KindleEar 登录密码
六、其它事项
七、自制订阅

本教程适用于 Windows 系统和 Mac OS X 系统,所以请注意下载适合你操作系统的软件,以及选择适合你操作系统的步骤。本文步骤没有多余的废话,请严格按照下面的步骤进行操作。遇到意外情况请留言提问,如果提出的问题文中已有说明将不再重复回答。

一、准备工作

KindleEar 依赖 Google APP Engine,所以你需要有一枚 Google 账号(注册完记得安步骤说明设置一下安全选项),然后创建一个 GAE 应用。以下步骤中,如果某个条件已具备,请忽略相应步骤继续。

1、能够科(fan)学(qiang)上网

对于中国大陆用户来说,由于无法正常访问 Google 的相关服务,需要借助科学上网软件实现访问。你可以使用你习惯使用的科学上网软件,也可以选择下面为你推荐的任意一款科学上网软件。

* 提示:Lantern 免费版限制流量,如果想要购买专业版,使用邀请码 HBNVPW 可获得 1 或 3 个月额外时长。

2、注册 Google/Gmail 账号

点击下面的链接,注册一枚带 @gmail.com 后缀的 Google 账号。

Google 账号注册页面:https://accounts.google.com/SignUp

3、对 Google 账号进行安全设置

Google 账号在默认可能会拒绝将 KindleEar 上传到 GAE,所以需要设置一下。点击下面的链接进入你的 Google 账号“登录与安全”设置页面,找到“允许不够安全的应用”这一项,点击右边的滑动按钮,将其状态切换为“已启用”。注意,为了账号安全,上传完之后建议将此设置恢复为停用状态。

Google 账号设置页面:https://myaccount.google.com/security#connectedapps

4、创建一个 Google Cloud 项目

KindleEar 是免费托管在 Google Cloud 的 Google App Engine(GAE)应用中的,所以你需要先创建一个 Google Cloud 项目,然后再创建一个 GAE 应用。点击下面的链接并用你的 Google 账号登录。

创建 Google Cloud 项目页面:https://console.cloud.google.com

点击页面左上角的“选择项目”,点击弹出对话框右上角的“新建项目”,然后在“新建项目”页面中输入你喜欢的“项目名称”。项目名称可随意填写,只要是你喜欢并且符合它限定的规则即可。

需要着重注意的是项目名称下方的“项目 ID”,这个 ID 也就是我们后面提到的项目 ID。默认情况下,系统会根据你输入的项目名称自动生成项目 ID,但是自动生成字符没有意义,为了方便记忆最好是自定义。点击项目 ID 后面的【修改】按钮,将其修改成你喜欢的字符串组合。这样等 KindleEar 部署成功后,你就可以通过 http://项目ID.appspot.com 访问了(注意把项目 ID 换成你真实的项目 ID)。

5、向结算账户添加支付方式

通过菜单导航或以下链接(把 YOUR-PROJECT—ID 替换为你自己的项目 ID)进入“结算(Billing)”页面,点击左侧的“付款方式(Payment method)”添加一张支持美元支付的信用卡。

https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID

* 提示:自 2019 年 11 月 30 日起,Google App Engine 将使用 Google Cloud Build 构建 ,而使用 Google Cloud Build 必需关联有效支付账户。也就是说从这天起必需绑定信用卡后才能正常使用 Google App Engine 了。Google Cloud Build 提供了免费套餐,只要构建时间不超过 120 分钟就不会收费,Google App Engine 仍可在不超出免费配额的前提下免费使用。需要特别注意的是,和之前免费额度用完就自动关闭应用不同的是,新政策会在免费额度用完后会自动收取超出免费额度的费用。

6、创建 Google App Engine 应用

创建完 Google Cloud 项目之后,还需要手动创建一个 Google App Engine 应用。方法有两种:一种是使用云端 Shell 创建;另一种是在 Console 页面上进行。可根据自己的喜好选用。

方法一:直接在云端 Shell 中使用命令创建。具体步骤为:点击页面右上角的 [ >_ ] 图标按钮(如下图所示),调出云端 Shell,输入以下命令按回车:

gcloud app create

命令执行后会出现 Which region would you like to choose? 字样,询问选择应用的位置,在 Please enter your numeric choice: 之后输入数字 1(或其它项),稍等片刻即可完成 GAE 应用的创建。

方法二:点击 Google Cloud 页面左上角的菜单按钮,点击弹出菜单中的“App Engine”。在“您的第一个应用”那里点击“选择一种语言”,选择“Python”。接下来“选择位置”中页面中选择“asia-east2”(或者其它你想要使用的区域,注意此选择是永久性的,一旦选择今后将不可更改),然后点击下一步。

如果你没有预先为结算账户添加支付方式,可能会弹出为当前项目启用结算账号的对话框,点击【创建结算账号】按钮会引导你进入创建结算账号的页面。如果你想要正常部署 GAE 项目,必须根据提示创建结算账号并添加可用美元支付的信用卡。至此便准备好了用来部署 KindleEar 的基础环境。

7、授权 GAE 用 Gmail 发信

默认情况下 GAE 没有使用 Gmail 发信的权限,所以你需要在 GAE 的设置中将 Gmail 的发信权限授权给 GAE 应用,否则, KindleEar 无法推送成功,日志中会出现错误提示 wrong SRC_EMAIL。

授权步骤很简单,首先在 GAE 中点击菜单中的【设置】进入设置页面,然后切换到【电子邮件发件人】,在“Mail API 已获授权的发件人”添加你的 Gmail 邮箱地址。具体步骤参考以下示意动画:

以上一切准备完毕,就可以进入第二部分的步骤,将 KindleEar 程序上传部署到 GAE。

二、上传应用

下面提供了两种将 KindleEar 应用上传到 GAE 的方法。一种是通过 Google 云端 Shell 的方式进行上传,使用书伴提供的 Shell 脚本一条命令就能搞定,完全自动化,强烈推荐使用。另一种是手动配置上网环境、手动输入命令进行上传,步骤较多也较为繁琐。请根据自己的实际情况择优选用。

方法一:自动上传(强烈推荐!)

1、进入 Google 云端控制台:https://console.cloud.google.com/home/dashboard

2、点击右上角的 Shell 图标(如下图所示)激活 Google 云端 Shell。

3、复制下面的代码,粘贴到 Google 云端 Shell(如下图所示),回车执行。

rm -f uploader.sh* && \
wget https://raw.githubusercontent.com/bookfere/KindleEar-Uploader/master/uploader.sh && \
chmod +x uploader.sh && \
./uploader.sh

代码粘贴到云端 Shell 后的效果如下图所示:

* 提示:脚本默认拉取 KindleEar 官方源代码,如果想要指定其它 KindleEar 项目分支(比如想要部署自己修改后并上传到 Github 上的 KindleEar 源代码)可在 uploader.sh 后加一个空格,然后跟上 Github 项目的 Git 地址即可。

4、根据脚本的引导,输入你的“Gmail 邮箱”和“项目 ID”等信息,等待上传成功即可。需要特别注意的是,一定要再三确认你输入的 Gmail 邮箱是正确的,拼写是无误的,否则无法推送成功。

上面的代码只需要执行一次即可,如果想要重新上传或要更新代码,只需要在 KindleEar 源代码目录下直接运行 uploader.sh 这个 Shell 脚本文件即可,即在云终端中输入下面这行代码即可:

./uploader.sh

* 提示:此 KindleEar 安装脚本托管在 GitHub:https://github.com/bookfere/KindleEar-Uploader

方法二:手动上传

在开始手动部署 KindleEar 步骤之前,请确保已完成本文第一部分提及的准备工作。

[ 展开步骤 ]

1、安装 Python 2.7

Mac OS X 和 Linux 系统已预装 Python 2.7,可略过此步骤。如果你使用的是 Windows 系统,请检查一下是否已安装 Python 2.7,如已安装可略过此步骤,否则请下载安装。下载时建议用迅雷等下载工具。

Python 2.7 下载WindowsMac OS XLinux官方页面

Windows 系统安装 Python 时,请在安装过程中的“Customize Python”这一步把“Add python.exe Path”这一项选为“Will be installed on local hard drive”,以便能在命令提示符中直接运行 python 命令。

* 提示1:由于 KindleEar 所依赖的 Calibre 相关的代码使用的是 Python 2.7,所以这里没有使用 Python 3。
* 提示2:macOS 系统虽然内置了 Python 环境,但是并不推荐直接使用它,而是推荐使用 Homebrew 安装独立的 Python 环境。Homebrew 是一款包管理器,支持 macOS(或 Linux)系统,它能安装和管理独立于原生系统环境的工具包,可有效避免对原生系统环境产生影响,对于没有包管理器的 macOS 系统(或 Linux 系统中的非 root 用户)来说非常方便。

2、安装 Google Cloud SDK

Google Cloud SDK 是用于管理托管在 Google Cloud 平台上的资源和应用(当然包括我们所需要的 Google App Engine)的一套工具,里面包含 gcloudgsutilbq 命令行工具。由于 GAE 不再支持旧的 appcfg 命令部署应用,所以必须安装 SDK,用其中的 gcloud 命令上传部署 KindleEar 项目。

Google Cloud 的文档为不同的操作系统如 Windows、macOS、Linux(含分发版本 Debian、Ubuntu、Redhat、CentOS)提供了详细安装步骤,你可以按照其指示进行安装。需要注意的是,文档中提供了“版本归档”和“安装程序”两种安装方式,为了减少不必要的麻烦,书伴建议均使用“安装程序”安装。

相较之前使用 appcfg 命令部署程序,使用 Google Cloud SDK 部署程序可以说是一种全新方式,为节省小伙伴们的时间,书伴根据官方文档将安装步骤梳理了一下,对一些可能产生疑问的地方做了解释。

● Windows 系统安装步骤:

Google Cloud SDK 安装程序下载官方下载百度网盘〈提取码 : ee68

下载并运行 Google Cloud SDK 安装程序,会出现如下图所示的安装界面:

和普通 Windows 程序的安装流程一样,各种下一步直至安装成功。

* 提示:由于在安装的过程中需要下载相关组件,所以需要耗费一些时间,请耐心等待。另外,书伴在测试时,发现安装过程中的下载不需要代理,如果你所在的网络环境在下载时遇到长时间停顿或出现了下载错误,可能需要使用全局网络代理。

● macOS & Linux 系统安装步骤:

在 macOS 和 Linux 系统中安装 Google Cloud SDK 全程都是在“终端(Terminal)”中进行的,所以你需要先打开“终端”,准备运行接下来提到的一些命令,这些命令只需粘贴复制并回车执行即可。

如果你身在中国大陆,需要让“终端”通过代理联网。如果你已经备好了可用的网络代理,你可以通过在“终端”中运行以下命令来应用 HTTP 代理(注意务必把命令中的 IP 和端口替换成真实可用的):

PROXY=http://127.0.0.1:8888; export HTTP_PROXY=$PROXY HTTPS_PROXY=$PROXY

然后执行以下命令开始 Google Cloud SDK 的安装:

curl https://sdk.cloud.google.com | bash

* 提示:如果你的 macOS 系统安装了 Homebrew,也可直接执行命令 brew cask install google-cloud-sdk 安装。

该命令会自动下载程序安装包,并在下载完成后自动执行安装,这时你会看到类似如下所示的提示:

Installation directory (this will create a google-cloud-sdk subdirectory) (/Users/YOURNAME):

这个提示的意思是让你输入程序的安装路径(默认会安装在你的用户主目录下),为避免可能出现的文件或目录权限问题,如果没有特殊需要,书伴建议直接回车让其安装到默认目录即可。

接下来会有一通命令执行安装,直到出现如下所示的提示信息:

Do you want to help improve the Google Cloud SDK (y/N)?

这个提示的意思是“你是否想要帮助改善 Google Cloud SDK”,“是”输入 y 并回车,“否”输入 N 并回车。

接下来程序会安装使用 Google Cloud 平台所需所有核心命令行工具。直至出现如下提示:

Modify profile to update your $PATH and enable shell command completion?

Do you want to continue (Y/n)?

这个提示的意思是“是否修改 profile 以更新 $PATH 并启用 Shell 的命令补全功能”。如果你知道如何手动配置 $PATH 变量并且不想让程序自动修改,可输入 n 回车拒绝,否则输入 Y 回车(或直接回车)允许。

最后安装程序会出现以下提示:

The Google Cloud SDK installer will now prompt you to update an rc file to bring the Google Cloud CLIs into your environment.

Enter a path to an rc file to update, or leave blank to use
[/Users/YOURNAME/.zshrc]:

这个提示的意思是“Google Cloud SDK 安装程序将会提示你更新 rc 文件,以便把 Google Cloud 命令行界面引入你的系统环境”,这样你就能直接在“终端”通过输入命令名执行命令,而不必使用完全限定文件名(命令程序的完整路径)了。程序会提示你输入一个 rc 文件的路径,如果你知道这是什么,可根据自己的需要自行修改,否则,建议直接按回车继续,让程序自动修改它监测到的你正在使用的 rc 文件。

* 提示:不必担心 rc 文件被破坏,因为安装程序会自动备份原 rc 文件。如你使用的 Shell 是 zsh(macOS 自 Catalina 开始默认使用 zsh),那么程序就会自动将 zsh 的配置文件 .zshrc 备份为 .zshrc.backup,如今后有需要可随时恢复。

至此就完成了在 macOS 或 Linux 中安装 Google Cloud SDK 的全部步骤。

为确保你成功安装了 Google Cloud SDK,请关闭并重新打开“终端”,输入如下所示命令:

gcloud --version

如果出现了如下所示提示,就说明 Google Cloud SDK 已经成功安装,否则需要重新安装。

Google Cloud SDK 290.0.0
bq 2.0.56
core 2020.04.21
gsutil 4.49

成功安装 Google Cloud SDK 后还需要做一些简单的配置,以便将 KindleEar 部署到 GAE。

3、配置 Google Cloud SDK

如果你身在中国大陆,首先需要让 Google Cloud SDK 通过代理联网。你可以使用全局网络代理,也可以单独为 SDK 设置网络代理,如选择后者,可通过在“命令提示符”或“终端”中依次运行以下命令来应用开始准备好的 HTTP 代理。下面的命令以 127.0.0.1:8888 为例,请务必替换成真实可用的 IP 和端口:

gcloud config set proxy/type http
gcloud config set proxy/address 127.0.0.1
gcloud config set proxy/port 8888

然后我们需要初始化 SDK,对其做一些简单的配置。在“命令提示符”或“终端”中执行如下命令:

gcloud init

你将会看到如下所示的提示信息:

Pick configuration to use:
 [1] Re-initialize this configuration [default] with new settings
 [2] Create a new configuration
Please enter your numeric choice:

提示的意思是,你有两种选择,一种是重新初始化 default 配置,另一种是创建一个新的配置。如果你只是用一个 Google 账号,直接输入 1 即可(如果你有多个账号需要设置,可以通过重新运行 gcloud init 命令,并选择 2 为多账号创建新的配置文件)。选择创建方式并确认后,你会看到如下提示:

You must log in to continue. Would you like to log in (Y/n)?

提示的意思是,你必须登录 Google 账号以继续,请输入 Y 回车(或直接回车),这时“终端”或“命令提示符”会出现一个 URL,同时你的浏览器自动打开这个 URL。你需要在打开的网页总登录 Google 账号,并允许 SDK 访问你的账户(如果你的浏览器没有自动打开 URL,请手动用浏览器打开此 URL)。

账号登录成功后,你会在“终端”或“命令提示符”中看到如下提示:

Pick cloud project to use:
 [1] bookfere-test
 [2] Create a new project

提示的意思是请选择你要使用的项目,你可以输入项目对应的序号(或输入项目名称)按回车即可。

至此你已成功配置好 Google Cloud SDK,当你再次执行 gcloud 命令时,相关的操作会作用于你所设置的这个项目(如果今后想换成其它项目请参考官方文档)。接下来就可以上传部署 KindleEar 了。

4、下载 KindleEar 源码

点击下面的链接下载 KindleEar 源码。如果你习惯使用 Git,也可以将项目 Clone 到本地。

KindleEar 下载下载链接项目页面

5、配置 KindleEar 程序

解压缩下载到的 KindleEar 压缩包(如果是通过 Git 的 Clone 命令获取的可略过此步),把 KindleEar 的源代码放到你喜欢的位置。为方便演示,本例中 KindleEar 源代码放置的位置如下所示:

Windows 系统中,将源代码放到了用户主目录下,路径为:

C:\Users\YOURNAME\kindleear

macOS 系统中,将源代码放到了用户主目录下,路径为:

/Users/YOURNAME/kindleear

Linux 系统中,将源代码放到了用户主目录下,路径为:

/home/YOURNAME/kindleear

接下来进入 KindleEar 源代码文件夹,按照下表修改文件并保存:

要修改的文件要修改的内容内容修改说明
app.yamlapplication: kindleear删除(或用 # 注释掉)这一行
version: 1删除(或用 # 注释掉)这一行
module-worker.yamlapplication: kindleear删除(或用 # 注释掉)这一行
version: 1删除(或用 # 注释掉)这一行
module: worker红色加粗部分修改为 service
config.pySRC_EMAIL = "xxx@gmail.com"红色部分修改为你创建应用的 Gmail 邮箱
DOMAIN = "https://xxx.appspot.com红色部分修改为你创建的项目 ID

注意!一定要再三确认 SRC_EMAIL 参数值是正确的 Gmail 邮箱,拼写是无误的,否则无法推送成功。

6、上传 KindleEar 程序

打开“终端”或“命令提示符”,使用 cd 命令切换到 KindleEar 所在目录(小窍门:输入 cd 后,把 KindleEar 文件夹拖到命令提示符上),然后输入以下命令将 KindleEar 上传到 GAE:

gcloud app deploy *.yaml --version=1 --quiet

部署的过程可能需要较长的时间(取决于网络速度),请耐心等待,直到命令运行完毕。如果你能看到 Indexes are being rebuilt. This may take a moment. 字样,说明已经部署成功。

三、访问应用

部署成功后,就可以打开网页浏览器,输入 http://项目ID.appspot.com 来访问你搭建的 KindleEar 应用。注意!URL 中的“项目ID”务必更换成你自己的真实项目 ID,否则是无法正常访问的。

KindleEar 初始登录名和密码都是“admin”,建议登录后立即改成新密码。登录 KindleEar 后你会发现以下几个导航,你可以在这里增减 RSS 、查看推送记录或根据自己的需要进行一些个性化的设置。

对于刚部署完的 KindleEar 应用,在访问“我的订阅”页面的时候,可能会遇到“internal server error”的错误,这是由于 GAE 需要时间索引应用的相关数据,你需要耐心等待一段时间。如果长时间(如超过半个小时)仍然无法正常访问,请参考本文的“五、常见问题”中的第 1 条提供的解决方案。

* 提示:由于 appspot.com 需要科学上网才能访问,如果嫌每次都这样访问麻烦,可以按照文章《给 KindleEar 绑定可直接访问它的免费顶级域名》介绍的方法,为其绑定一个免费的顶级域名。当然你可以可以为其绑定现成的顶级域名。

四、设置推送

以下是 KindleEar 的常用功能的简要介绍,当然你也可以自行体验摸索各种功能。

1、添加订阅

登录应用后,可以点击导航上的“我的订阅”进入订阅页面,在这里在这里可以添加自定义的 RSS 地址。也可以在下方预置的一些订阅里选择自己感兴趣的。

在添加自定义 RSS 地址的时候请注意。KindleEar 仅支持 RSS/ATOM 格式的订阅(XML 格式),如果遇到添加的自定义 RSS 无法成功推送,请留意是否是格式错误导致的。

比如有些 FeedBurner 烧制的 RSS 默认是 HTML 格式(可以通过查看源代码辨别),直接添加这种 RSS 地址不能成功推送,需要在添加的 RSS 地址后面添加一个参数 ?format=xml?fmt=xml 才行。

2、设置推送

添加完订阅后,还需要设置一下推送。点击导航上的“设置”进入 KindleEar 的设置页面。在这里填写接收推送的“Kindle 邮箱”,选择投递日,所选投递日的投递时间,建议勾选“多本书籍合并投递为一本”、“使能自动定时投递”、“自动定时投递自定义 RSS”。同时还可以在“书籍标题”项填写显示在 Kindle 里的个性名称。当所有设置完后还可以点击“现在投递”测试一下。

3、投递日志

每次投递的记录。

4、账户管理

可以添加多用户,更改密码等。

5、高级设置

有手动推送订阅功能即“现在投递”,有邮件白名单、归档和分享、URL 过滤、封面图片设置。

6、网友分享

你可在此页面一键订阅他人分享的 RSS。当然你可以在“我的订阅”把自己 RSS 分享给他人。

OK,全部步骤结束。在你的 Kindle 处于联网状态时,这个你亲手建立的推送服务器,就会按照你设置的时间定时把精美的电子杂志推送到你的 Kindle 上了!Enjoy it!

五、常见问题

很多小伙伴在安装和使用 KindleEar 的过程中会遇到一些问题,这些问题很常见也很好解决,所以书伴将这些问题整理归纳如下。如果你遇到了新的问题也可以留言提出。

1、访问页面提示 internal serve error

如果是刚上传完 KindleEar,由于 GAE 需要一些时间索引数据,在此期间访问某些页面会出现“internal serve error”的错误提示,最长等待十来分钟即可正常访问。

如果等待很长时间仍然出现“internal serve error”,请尝试这样操作:点击 Google Cloud 左上角的菜单按钮,点击弹出菜单中的“数据存储”,再点击数据存储页面左侧导航中的“索引”进入索引页面。

查看一下 Book、DeliverLog、Feed 三项的状态,如果是绿色对勾则正常,否则就需要重新索引一下。具体操作为,进入 KindleEar 目录,运行下面这条命令更新一下索引:

gcloud app deploy index.yaml --version=1 --quiet

待索引状态全部变成“使用中”后,也就是每一项都变成绿色对勾,即可正常访问。

2、投递状态显示 wrong SRC_EMAIL

默认状态下 GAE 不允许发信,所以才会出现 wrong SRC_EMAIL 的提示,你需要设置一下把 Gmail 邮箱地址添加到“Mail API 已获授权的发件人”,这需要在 GAE 应用的设置中进行。

▲ 向 GAE 设置中添加 Gmail 邮箱示意动画

首先访问下面这个网址进入 GAE 应用设置(将其中的项目 ID 换成你真实的项目 ID):

https://console.cloud.google.com/appengine/settings/emailsenders?project=项目ID

* 也可以点击左上角的菜单,在弹出的菜单中点击“App Engine”,然后再点击 APP 引擎页面左侧的“设置

切换到“电子邮件发件人”,看一下“Mail API 已获授权发件人(Mail API authorized senders)”账号里面有无添加发送邮箱地址,如果没有就点击上方的“添加”按钮或“添加已获授权的电子邮件发件人”按钮添加一下邮箱地址,注意添加完后要按回车确认一下,最后点击“添加”,此问题即可解决。

如果确认添加了正确邮箱,却仍然出现 wrong SRC_EMAIL 错误,就需要检查一下 KindleEar 配置文件 config.py 中的 SRC_EMAIL 参数,确保填写的是【拼写正确】的 Gmail 邮箱。

▲ 仔细检查源代码 config.py 中的 SRC_EMAIL 参数

3、忘记 KindleEar 的登录密码怎么办

忘记密码可以进入 GAE 重置密码,具体方法为:访问 https://console.cloud.google.com,点击左上角的菜单,点击菜单中的“数据存储”,然后在“按种类查询”的标签项下方的“种类”中,选择“KeUser”,最后点击用户记录“名称/ID”,编辑其中的 passwd,改成 e10adc3949ba59abbe56e057f20f883e,最后点击【保存】按钮保存一下,这样就把密码临时改成了123456,登录账号修改成新密码即可。

六、其它事项

上文已将 KindleEar 的部署步骤和使用方法详细列出,一般情况下你只需要按照步骤一步步操作就能部署成功。如果遇到问题,请访问 KindleEar 项目提供的常见问答(FAQ)。那里可以解决你在安装 KindleEar 时遇到的绝大部分问题。如果 FAQ 没有解决你的问题,可以自行搜索看是否有可行办法。

实在解决不了可以点击这里向开发者提交一个“New issue”请求解答,也可以在本页留言请求帮助。

另外,如果你觉得 KindleEar 这款软件还不错,可以点击这里捐赠一下作者 cdhigh。

七、自制订阅

如果你想推送的内容不提供 RSS 供稿,并且 KindleEar 内置的订阅也不能满足你的需求,建议尝试通过下面这三篇文章提供的方法自制 KindleEar 抓取脚本,教程面向没有编程基础的小伙伴。

1、如何用 KindleEar 推送无 RSS 的网站内容(上篇)

本文是如何用 KindleEar 推送无 RSS 的网站内容的上篇。对 KindleEar 抓取网站内容的两种方式以及 KindleEar 的抓取脚本做了必要说明,并提供了 KindleEar 调试环境的搭建步骤。

2、如何用 KindleEar 推送无 RSS 的网站内容(中篇)

本文是如何用 KindleEar 推送无 RSS 的网站内容的中篇。详细介绍了 KindleEar 订阅脚本的工作原理,对订阅脚本的编写过程做了详细分解说明,最终实现从网站抓取文章并转换成电子书。

3、如何用 KindleEar 推送无 RSS 的网站内容(下篇)

本文是如何用 KindleEar 推送无 RSS 的网站内容的下篇。完善了上篇编写订阅脚本,使其可处理文章列表和内容的翻页,以及抓取符合设定条件的文章条目,最后介绍了上传 KindleEar 的两种方式。

有帮助,分享给其他小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 767 条评论

  1. 想咨询一个问题,我刚入手kindle不久,编程方面一点都不懂,一直想用Kindle追现在正在更新的网络小说,找了好久看到了一篇文章https://blog.csdn.net/u011522919/article/details/79463238
    然后我想到了自制rss然后利用wheremylife每日推送,我希望能知道这个办法能不能走的通,如果可以的话,想解决上边的问题该学习那方面的知识呢?

    • 在“制作 RSS”和“将 RSS 内容推送到 Kindle”这两个环节的可靠性能满足的前提下,你的思路是可行的,不需要编程知识。

      不过需要注意的是,这类工具虽然很方便,但也有很大的局限性,比如“制作 RSS”环节,你所使用的服务商需要抓取源网站的内容,如果该个网站屏蔽了服务商的 IP 或布置了反爬虫措施,那就很可能无法抓取成功。把 RSS 内容推送到 Kindle 也是同样道理,均依赖于服务商提供服务的可靠性。

  2. 为什么你的kindle上的书是样式那么好看呀,我的就是一个普通的列表,不是你这种坐标分类,右边标题的样式

  3. 请问大佬,我在需要绑定信用卡之前就部署好了kindle ear,现在也不打算绑定,有什么需要注意的地方吗?

    • 如果之前已经部署好了,应该是可以正常使用的,但是只能维持当前状态,若想重新部署就必须绑定信用卡。

  4. ╠═ Uploading 0 files to Google Cloud Storage ═╣
    ╚════════════════════════════════════════════════════════════╝
    File upload done.
    WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cl
    oud.google.com/billing/linkedaccount?wanglaoba

    上传新版软件的时候提示这个该怎么处理?国内没办法添加收费账户呀

    • 这个问题本文第一部分第 6 小节有提示。虽然 GAE 和以前一样仍然有免费额度可用,但自 2019 年 11 月 30 日起必需向支付账户添加一个支持美元支付的信用卡(如 Visa、MastCard 等)才行。

  5. 你好,我按步骤上传后出现这个错误,请问怎么解决?求大佬告知,谢谢
    ERROR: (gcloud.app.deploy) The project property is set to the empty string, which is invalid.
    To set your project, run:

    $ gcloud config set project PROJECT_ID

    or to unset it, run:

    $ gcloud config unset project

  6. 你好 完成一切登陆https://APP_ID.appspot.com/ 后显示

    404. That’s an error.

    The requested URL was not found on this server. That’s all we know.

    请问怎么回事?一样的问题,且APP_ID已经替换成了项目ID

      • 2019 年 11 月 30 日以后,如果 Google Cloud 的支付账户没有绑定信用卡,无法成功部署 GAE 应用。建议重新上传一次,然后注意是否出现了如下所示的提示信息,如果有的话就说明你的 GAE 应用无法正常部署,需要为支付账户绑定信用卡才行。

        WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID
    • 这是由于 GAE 的部署方式改变导致的,修正后的脚本已解决这个问题,请重新运行命令进行上传。

        • 2019 年 11 月 30 日以后,如果 Google Cloud 的支付账户没有绑定信用卡,无法成功部署 GAE 应用。建议重新上传一次,然后注意是否出现了如下所示的提示信息,如果有的话就说明你的 GAE 应用无法正常部署,需要为支付账户绑定信用卡才行。

          WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID
      • 完成一切登陆https://APP_ID.appspot.com/ 后显示

        404. That’s an error.

        The requested URL was not found on this server. That’s all we know.

        一直都不可以怎么办

            • 出现这个问题说明没有成功部署 KindleEar。你为 Google Cloud 的支付账户绑定信用卡了吗?在上传过程中出现什么错误了吗?

                • 如果没有绑定信用卡,应该是无法部署成功的。建议重新上传一次,然后注意是否出现了如下所示的提示信息,如果有的话就说明你的 GAE 应用无法正常部署。

                  WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID
              • WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkeda
                ccount?q961184441
                Updating service [default]…failed.
                ERROR: (gcloud.app.deploy) Error Response: [7] Access Not Configured. Cloud Build has not been used in project q961184441 before or it is disabled. Enable it by visiting https://console.develope
                rs.google.com/apis/api/cloudbuild.googleapis.com/overview?project=q961184441 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry
                .

                出现了这两个 怎么解决呀

                • 解决这个问题需要向 Google Cloud 的结算账户添加一个支持美元支付的信用卡(如 Visa、MastCard 等)。