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

“Kindle推送”相关阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 802 条留言

  1. 你好,我按照配置用云端shell设置好了后,在kindleEar界面推送,所有的订阅都是over quota。有两个我可能设置出问题的地方。
    1:GAE设置电子邮箱发件人,是设置gmail邮箱还是kindle的推送邮箱?我设置的gmail,kindle的设置不了。
    2:是不是google cloud platform需要注册免费试用?就是上面会显示注册送300美金,12个月的显示,由于没有信用卡没搞成功。
    谢谢了

    • 你的设置没错,是 Gmail 邮箱地址。GAE 可以免费使用,但是有配额限制,出现 Over Quota 可能是你添加的订阅太多,或者推送太频繁,导致超出限额。出现错误 GAE 会记录详细日志,你可以从菜单进入日志,查看导致失败的具体提示。

      • 我现在投递,kindleEar的日志都不会刷新了,是下面这些代码吗?麻烦了
        {
        httpRequest: {
        status: 503
        }
        insertId: “5a768c2900007a9825c7133f”
        labels: {
        clone_id: “”
        }
        logName: “projects/kinrss95/logs/appengine.googleapis.com%2Frequest_log”
        operation: {
        first: true
        id: “5a768c2800ff054f0a3f2fc3730001737e6b696e72737339350001776f726b65723a31000100”
        last: true
        producer: “appengine.googleapis.com/request_id”
        }
        protoPayload: {
        @type: “type.googleapis.com/google.appengine.logging.v1.RequestLog”
        appEngineRelease: “1.9.54”
        appId: “s~kinrss95”
        cost: 1.08405e-7
        endTime: “2018-02-04T04:29:29.031044Z”
        finished: true
        first: true
        host: “worker.kinrss95.appspot.com”
        httpVersion: “HTTP/1.1”
        instanceIndex: -1
        ip: “0.1.0.2”
        latency: “0.683130s”
        method: “GET”
        moduleId: “worker”
        referrer: “http://kinrss95.appspot.com/deliver?u=admin”
        requestId: “5a768c2800ff054f0a3f2fc3730001737e6b696e72737339350001776f726b65723a31000100”
        resource: “/worker?u=admin&id=5639445604728832”
        responseSize: “970”
        startTime: “2018-02-04T04:29:28.347914Z”
        status: 503
        taskName: “021016325618390949”
        taskQueueName: “deliverqueue1”
        traceId: “6d8df888af47b9a9a4b92254dc829c27”
        userAgent: “AppEngine-Google; (+http://code.google.com/appengine)”
        versionId: “1”
        }
        receiveTimestamp: “2018-02-04T04:29:29.037241971Z”
        resource: {
        labels: {
        module_id: “worker”
        project_id: “kinrss95”
        version_id: “1”
        zone: “us10”
        }
        type: “gae_app”
        }
        timestamp: “2018-02-04T04:29:28.347914Z”
        }

        • 这些信息看不出什么问题。出错的日志应该是被标记为红色的,在这你贴出的一堆信息下方应该会有具体错误提示。另外,你可以根据自己之前的操作大致判断一下:是否订阅条目太多?或者推送太频繁?一般出现 Over Quota 就是这些问题导致的。

  2. 请教一个问题,自己自定义了RSS。也已经添加,自定义的没有推送过来,其他的可以

  3. 添加了RSS地址后不添加在我的订阅列表了怎么办,不知道哪一步错了

  4. 我kindle Ear的投递日志里面有推送记录,但是我的kindle上什么都没接到。基本设置里面已填写kindle邮箱,在亚马逊邮箱白名单里也添加了谷歌邮箱。
    不知问题到底出在哪里,先感谢大神!

  5. 我当初是请书伴的工作人员帮忙搭建的kindleear。现在忘记了账号和密码,可以帮忙查一下吗

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

  6. 谢谢教程。已经依照教程设置完毕,也在kindlear里添加了RSS源,许可邮箱也加入了,开启了推送,但至今没有收到。推送日志也没有推送记录,请问这是怎么了?

    • 先检查推送日志,如果没有记录说明设置有错误。设置好 KindleEar 后建议手动推送测试一下,然后看日志的状态,如果出现 wrong SRC_EMAIL 请参考本文第三部分的“小贴士”,如果日志是 OK 说明 KindleEar 的设置没问题。最后确认一下你的 Gmail 已在亚马逊后台加入到了认可列表。

  7. 首先感谢这个相对github简单的教程让我成功部署成功KindleEar,但我有一些问题
    1.在云终端输入./uploader.sh 时的确显示是否更新源码,我选择是时等它结束后再打开却没有更新版本。
    2.知乎貌似是抓取不到,搭转发器的教程有空出个图文版。
    感谢

    • 1、更新源码的提示并不能检测 KindleEar 的最新版本,只是每次运行时的一个简单提示,用来自动删除目前已存在的源码;2、具体的抓取问题建议自行研究,不懂的技术细节可前往 KindleEar 的项目页开 Issue 询问。

      • 我想用标准部署重新再部署一遍,再上传kindleear源码时即C:\python27\python.exe appcfg.py update C:\kindleear\app.yaml C:\kindleear\module-worker.yaml出现了错误,不知道怎么解决。
        Traceback (most recent call last):
        File “appcfg.py”, line 133, in
        run_file(__file__, globals())
        File “appcfg.py”, line 129, in run_file
        execfile(_PATHS.script_file(script_name), globals_)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5497, in
        main(sys.argv)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5488, in main
        result = AppCfgApp(argv).Run()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2966, in Run
        self.action(self)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 5144, in __call__
        return method()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3846, in Update
        self.UpdateUsingSpecificFiles()
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3838, in UpdateUsingSpecificFiles
        self.UpdateVersion(rpcserver, self.basepath, module_yaml, file_name)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 3814, in UpdateVersion
        return appversion.DoUpload(paths, openfunc)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 2401, in DoUpload
        self.error_fh)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 497, in GetResourceLimits
        resource_limits.update(_GetRemoteResourceLimits(logging_context))
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 467, in _GetRemoteResourceLimits
        yaml_data = logging_context.Send(‘/api/appversion/getresourcelimits’)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py”, line 1709, in Send
        result = self.rpcserver.Send(url, payload=payload, **kwargs)
        File “C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc_httplib2.py”, line 246, in Send
        url, method=method, body=payload, headers=headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 579, in new_request
        self._refresh(request_orig)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 787, in _refresh
        self._do_refresh_request(http_request)
        File “C:\Program Files (x86)\Google\google_appengine\lib\oauth2client\oauth2client\client.py”, line 806, in _do_refresh_request
        self.token_uri, method=’POST’, body=body, headers=headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1584, in request
        (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1332, in _request
        (response, content) = self._conn_request(conn, request_uri, method, body, headers)
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1268, in _conn_request
        conn.connect()
        File “C:\Program Files (x86)\Google\google_appengine\lib\httplib2\httplib2\__init__.py”, line 1011, in connect
        sock.connect((self.host, self.port))
        File “C:\Program Files (x86)\Google\google_appengine\socks.py”, line 362, in connect
        raise GeneralProxyError((5,_generalerrors[5]))
        socks.GeneralProxyError: (5, ‘bad input’)

        • 命令本身没错,但是根据最后行的提示,应该是代理方面的错误。建议更换代理,或者把代理设置成全局试试看。

          另外有个小建议。如果是因为要修改 KindleEar 的源代码的原因要这样部署,不如通过 GitHub 账户 fork 一下原 KindleEar 项目,然后 Clone 到本地修改,修改完之后再 push 上去,最后用 Google Cloud 的云端 Shell 执行这些命令。这样做的好处就是不必担心本地的网络代理方面会出错,显得更方便一些。

          • 谢谢了,根据您的方法我成功部署。但我不知道是不是完全你理解那样部署的。
            附上部署方法,
            1.先fork下kindleear,按要求改下标准部署要求改的那几个文件,之后打开cloud shell。(上传时,步骤的第二步 git clone https://github.com/miaowm5/KeUploader.git 改成你fork 后的地址)
            2.git clone https://github.com/shmily1866/KindleEar.git
            3.cd kindleear
            4.appcfg.py update ./

    • 注意你提供的错误中 ./uploader.shrmshrm 是不应该连在一起的。如果不懂 shell 命令,建议在贴代码的时对比一下本页提供的样例图片,仔细检查是否一致。

  8. Kindle是否需要在墙外才能收到推送?还有,允许不够安全的应用这项设置我没找到

    • 不是的,只有安装 KindleEar 的时候需要科学上网,安装完毕后 KindleEar 会直接推送内容到亚马逊的个人文档服务器。

      登录你的 Google 账号,在“登录和安全”中的最后一项就是。点击文章中提供的链接也会直接定位到那里。

    • 刚才出现了这个问题,但是没有查出什么原因。测试服务器运行和连通都正常,使用代理、更改本地 DNS 可访问,怀疑是域名解析出了问题,正在观察。

  9. 昨天搭建成功后订阅了一些东西,今天在登录的时候网址就进不去了,kindle也不能收到订阅的东西,这是什么情况

    • 网址进不去,建议检查输入的网址是否正确,如果是在大陆还需检查网络代理是否工作正常。收不到订阅,建议检查日志是否正常,并按照本文的步骤,仔细检查有无漏掉某些设置。

      • 手工上传 KindleEar 程序是,CMD报错,错误提示如下:
        socket.error: [Errno 10061]
        请教下,该如何解决?

        • 这是代理网络有问题,请尝试更换其它网络代理。对于身在大陆的小伙伴,书伴推荐使用云端 Shell 上传。即便需要对源代码进行修改再上传,也可以先放到 Github 上,再用云端 Shell 上传,这样可以避免本地代理的相关问题。