~时光机~

0x00 Handsome主题时光机

Handsome 主题内置了一个「时光机」功能,可以类似微博、微信朋友圈一样发布动态,而且支持通过微信公众号、Chrome 插件等多平台发布。同时,还可以在该页面上利用 RSS 订阅源把自己的微博和 Twitter 等平台的动态同步显示。

0x01 时光机多平台发布动态

Handsome 开发者提供了一个微信公众号发布的渠道,但是这样需要用到别人的服务,而且后期如果要添加新的网站等都需要在该平台修改,不是很方便。既然有自己的服务器,还有自己的微信公众号,那就不如自己搭建一个。

首先下载wechat_for_handsome项目到自己服务器目录,我们可以添加一个新的网站和域名来部署,同时需要创建一个对应的数据库。
在安装该服务前,我们需要先去微信公众号后台获取必要的设置参数。在微信公众号后台「开发 - 基本配置」处获取 AppID 和 AppSecret。然后我们参照微信公众号的文档,使用刚才获得的两个参数在微信公众平台接口调试工具获取 access_token
服务器配置
接下来回到微信公众号后台「开发 - 基本配置」处启用服务器配置。服务器地址(URL)填写为「项目域名 /server.php」;令牌(Token)就是第二步得到的access_token;消息加解密密钥(EncodingAESKey)可以随机生成但是一定要记录,因为我们还需要在项目安装时候填写;消息加解密方式可以选择「安全模式」。因为还没有在服务器上安装,所以先不要提交,放一边,进入下一步。

回到之前添加的站点,访问「项目域名 /install.php」进入安装步骤。依次输入要求的几个参数,这些我们都通过上面的几个步骤获得了,设置完毕后安装即可。这样就可以回到第三步的公众号服务器配置,提交验证。
然后向公众号发送「绑定」,点击链接填写相关信息进行绑定,绑定完毕就可以参考主题文档的说明发布动态了。如果没有反应,可能是刚刚验证完毕,稍微等一会儿就好。其中,时光机的cid可以在后台独立页面管理处获得,验证编码可以在主题设置处自行设置一个当作访问密码。

如果公众号启用了「服务器配置」后,自定义的菜单不见了,可以在功能插件设置处重新启用即可。Chrome 扩展发布动态的方法可以直接参考主题文档配置。

0x02 添加 RSS 订阅源

时光机上要显示自己的微博或者Twitter的动态,可以借助RSSHub生成的订阅源。其中 Twitter 还需要去申请获得 API 相应的 key 才可以访问。

当然,使用的时候不能直接填写这个订阅源,因为会被禁止跨域访问,这时候可以在该订阅源链接前面加上https://cors-anywhere.herokuapp.com/。例如我们要订阅微博的 RSS 订阅源链接是https://rsshub.app/weibo/user/{weibo_user_id},那么为了方便跨域访问,可以在时光机设置时候填写:

https://cors-anywhere.herokuapp.com/https://rsshub.app/weibo/user/{weibo_user_id}

当然,可能通过访问herokuapp.com来获取订阅源速度比较慢,那就可以自行部署这个CORS Anywhere 服务。方法也很简单,以使用宝塔面板为例,因为部署该项目使用的是 Nodejs 环境,需要先安装 Nodejs。

然后下载上述项目源码到需要部署的服务器目录,项目根目录下创建环境变量设置文件.env,编辑文件添加环境变量(具体含义用法见该项目文档),例如:

PORT = 1400
CORSANYWHERE_WHITELIST = https://blog.dlzhang.com,https://rss.zdl.one

之后安装所需要的依赖(以下命令二选一):

# yarn 安装方式
yarn
yarn add dotenv # 调用环境变量文件需要的依赖

# npm 安装方式
npm install
npm install dotenv --save # 调用环境变量文件需要的依赖

修改启动文件server.js,在最开头加入以下内容,以便在最开始就引入环境变量文件的参数:

// Import .env
let dotenv = require('dotenv');
dotenv.config('./env');

可以手动启动,或者用「PM2 管理器」启动,选择启动文件为server.js即可。

node server.js

最后,为服务设置反向代理,使得可以通过域名访问该服务。

Last modification:July 22nd, 2020 at 04:19 pm
如果觉得我的文章对你有用,请随意赞赏