Typecho添加微语(说说、碎语、时光机)功能

Typecho添加微语(说说、碎语、时光机)功能

Tod
Tod
2022-05-05 / 0 评论 / 34 阅读 / 正在检测是否收录...

  从09年开始折腾独立博客,使用的Emlog,因为当时还在上学,有大把时间折腾,也因此结识了很多兴趣相投的朋友。当时的Emlog有个微语功能,类似于微博,这在当时应该说是很超前的了,不知道大家是否还记得曾经的饭否。后来Emlog更新迭代,慢慢的取消了微语功能,独立博客也在时代的洪流下逐渐没落,一众朋友也从“愤青”活成了自己曾经讨厌的样子,过着累成“狗”的生活,当然,我也一样。之所以开篇啰嗦这么多,是想说下我对微语功能的情有独钟,也许是承载的回忆在作祟吧。即使后面新开博客时尝试了Typecho,也一直对这个功能念念不忘,但是,有个很现实的问题是——我不会搞。好在这个圈子从来不缺大神,再次申明一下,以下所有均不是我弄出来的,我也会一一标注作者,之所以写这篇文章,主要两个作用:一是记录一下方便自己,以免以后忘记了;二是方便跟我一样不懂代码的朋友,有时候大神一句此处很简单,略过,就会让我们折腾好久。

  一、实现原理

  通过独立页面评论的方式实现前台显示,通过判断登录状态控制是否可以发表评论。

  二、操作步骤

  1. 下载 typecho 时光机单页 typecho-whisper (作者: 即刻学术 ,点击可查看作者原文,下同)。

  2. 解压缩文件夹后,将page.whisper.phptimes文件夹复制到你所用的typecho主题目录下。

  3. 登录typecho后台,新建独立页面,模板选择超级时光机,添加字段名称为time_code,字段值自己填,将用于后面api唯一验证。默认开启微语评论,如果需要关闭微语的评论功能,则需要再添加字段名称为enable_comment,字段值为0.
微语后台设置示例

  4. 在你的主题functions.php文件顶部添加如下代码,注意需要在php标签内。

require_once 'times/Ajax.php';

  5. 此时因该就可以用了,由于作者单独为微语设置了样式,所以可以适应各种主题,但是你会发现缺少了博客的头部和底部显示,如果需要可以自己添加,可以随便在主题目录下找一个独立页面作为参考,比如index.php、page.php等,下面放一个我修改的实例,修改page.whisper.php,我使用的JOE7.3.6主题,在文章末尾我会提供下载。
修改page.whisper.php示例

  6. 如果您仅仅是想在博客实现微语功能,那么到这一步应该就可以了,如果想利用微信公众号发布微语,可继续往下看。

  7. 下载API接口文件 wechat_for_handsome-master (作者: 我若为王 ),将其上传到你的服务器(虚拟主机也可以),打开 你的网址/install.php 安装。

  8. 注册微信公众号。打开https://mp.weixin.qq.com,点击立即注册,完成注册流程。选择左侧菜单栏——设置与开发——基本配置——服务器配置—,服务器地址(URL)填写项目所在网址/server.php,并启用服务器配置。

  9. 公众号发送绑定,点击链接填写相关信息进行绑定。

  三、使用方法

  1. 发送绑定进行绑定或修改绑定信息

  2. 向时光机发送消息
    支持文字、图片、地理位置、链接四种消息类型。
    其他消息类型等后续开发,暂不支持(如果发送了,会提示不支持该类型的,如语音消息)。
    如果发送的是图片会自动将图片存放到typecho 的 usr/uploads/time 目录下。
    支持发送私密说说。只需要在发送内容前加入#即可。 举例发送:#这是私密的说说,仅发送者可见。
    连续发送多条信息
    发送开始,开始一轮连续发送
    发送结束,结束当前轮的发送

  3. 发送文章
    输入发文章,开始文章发送,支持多条消息,支持多条消息图文混合
    输入发文章,结束文章发送

  4. 其他操作
    发送博客收到你的博客地址的链接
    发送发博客收到发博文的字的链接
    发送解除绑定解绑可删除掉你的绑定信息
    发送帮助查看帮助信息

  如果绑定微信号时提示验证失败,可以将server.phpmd5($timecode)替换为$timecode,大概在第40行,替换后的代码如下:

$desp = array('cid' => $cid,'mid' => $mid, 'content' => $content,'action' => "send_talk",'time_code' => $timecode,'msg_type' => $msg_type,'token' => 'weixin');

微信发图示例

  好了,结束了,快去试试吧。

0

评论 (0)

取消