如何通过公众号发送时光机/说说/碎语/心情(Typecho版)

2023年09月28日 14487 186

鉴于这个功能相关的文章,之前都是参考了多个博主的文章,并且插件主要应用于“handsome”主题,所以有很多地方,需要修改代码,又有很多无用的代码。经常有网友会遇到各种各样的问题,无奈。。。所以我把代码全部重写了。。。直接按下面步骤即可,无需修改代码!

申请微信公众号

我这里用的微信测试公众号,申请简单,如果没有其他特殊需求,够用了。传送门:测试公众号

安装时光机

  1. 下载压缩包Times_1,传送门:

抱歉,隐藏内容 回复 后可见

  1. 使用一个新的单独的域名(一级、二级均可,非博客)(微信公众号不支持二级目录作为接口地址),如果你的博客是https://blog.xxx.cn,那么这个域名可以是https://weixin.xxx.cn
  2. Times_1解压后,上传到这个域名的根目录下。执行安装https://weixin.xxx.cn/install.php

这里看黑板!敲重点!数据库,直接填写你博客的数据库配置。别担心,不会覆盖或清空,仅仅增加了一个chrison_weixin表。当然,还是要常常做好数据备份工作。

公众号ID和公众号secret填公众号给你的信息。token请填写固定值:spDJ7DdtqJ1nnUdLnfCx。aes_key可以不填。apiKey可以去高德开发者处申请,用于后续地图的显示,选填。

iShot_2023-09-28_10.41.11.png

  1. 填写完信息点击“安装”,如果没有其他提示,则安装完成。然后去微信公众号页面配置服务器接口:URL填写https://weixin.xxx.cn/server.php;Token填写固定值:spDJ7DdtqJ1nnUdLnfCx。提交后显示配置成功,则公众号与服务器已对接完成。

iShot_2023-09-28_10.41.25.png

  1. 扫码关注自己的公众号,应该会显示一部分帮助信息,发送绑定关联博客。填写相关信息,点击“绑定”即可。

网址:你的博客地址。如:https://blog.xxx.cn
openid:一般会自动获取
cid:时光机/说说的页面cid(可在后台鼠标放在标题上获得)
cid密钥:时光机/说说的页面内,增加自定义参数timescode,值自行定义,以防止他人操作发布(后台设置的timescode值,要和这里的cid密钥一致)
mid:你想要发布文章的所属分类(可在后台获得)

iShot_2023-09-28_10.50.36.png

时光机与博客联动

  • 下载压缩包Times_2,传送门:

抱歉,隐藏内容 回复 后可见

  • 将解压后的文件夹times放置在博客主题目录下,即与functions.php文件同级。
  • 打开编辑functions.php文件,引入文件require_once 'times/func.php';
  • 大功告成!公众号内可测试发送。

若微信公众号内提示Call to undefined function getIp()

看不到报错代码的,请务必打开php的报错提示功能

如果自己代码中有获取IP的方法,可以自行调用。如果没有,可以在functions中添加如下代码:

//获取IP
function getIp(){
    $ip= '-';
    if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
    {
      $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    }
    elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
    {
      $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
    }
    elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
    {
      $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    }
    elseif (getenv("HTTP_X_FORWARDED_FOR"))
    {
      $ip = getenv("HTTP_X_FORWARDED_FOR");
    }
    elseif (getenv("HTTP_CLIENT_IP"))
    {
      $ip = getenv("HTTP_CLIENT_IP");
    }
    elseif (getenv("REMOTE_ADDR"))
    {
      $ip = getenv("REMOTE_ADDR");
    }
    else
    {
      $ip = "Unknown";
    }
    return $ip;
}

IMG_6686.jpg

iShot_2023-09-28_11.05.07.png

  • Ver 1.0

    1.支持单文字发布
    2.支付单图片发布
    3.支持图文混合发布
    4.支持地图发布

  • Ver 2.0

    1.支持文章图文发布
    2.发送语音仅会保存文件,暂不支持发布

公众号微信时光机碎语说说心情

相关文章

【Typecho插件】Blog Helper一键同步微信运动、快速发布说说、时光机、碎语、日记、心情
如何给Typecho的Feed订阅中增加指定文章评论
在Typecho任意主题上通过公众号发送说说、碎语、时光机、日记

评论(186)

  1. 视频和语音其实道理差不多,不过语音的效果不太理想,感觉杂音太大了,哈哈

      1. @Chrison ffmpeg安装很简单哇,我就是用的这个,然后amr转mp3,还有就是不通过本地,现在有很多云存储自带音频转格式的,可以直接回调输出,其实speex格式是高清的,不过我没研究speex转mp3,改天研究下,不然8K采样率还是太嘈杂了,16K采样率的应该会高很多。

        1. @Jdeal 语音显示的不用搞了,哈哈,刚刚看官方文档11月1日起下线翻译文字功能,没有调用接口了。

        2. @Jdeal 网上看了下,有个amr-js,可以直接转码播放。不知道行不行。另外,你的语音功能显示+播放的那段html+css能不能共享下我前端小白

  2. 反馈:1、引入 require_once 'times/func.php';后页面和文章编辑页设置栏及字段栏不见了;2、公众号已绑定,但访问/server.php说未绑定。测试,无反应。

        1. @Chrison 重新下载Time_1,覆盖server.php即可。1.支持单文字发布2.支付单图片发布3.支持图文混合发布4.支持地图发布

        2. @Chrison 因为是你的服务器帮你发的,就是你服务器的IP,你的好像是香港。你可以去你的IP转省份的地方,单独处理成别的文字。我是单独判断处理了。`function ip2regionFull($ip){$data = ip2region($ip); if($ip === '47.11.11.11'){ $data['province'] = '阿里云'; $data['city'] = ''; } return $data['province'].$data['city'];}`

        3. @Chrison 刚刚删除的那一段,是因为和function里的方法重复了。可能也就仙人掌主题正好有吧。主要是我这边测试,上面会提示第几行有问题。你的应该没有显示报错说明,所以看不到。下午可以再更新一部分。敬请期待。

    1. @荒野孤灯 引入的前后上下文都截图看下。server.php是公众号处填写,不会说未绑定吧,只会说失败。几个地方的图可以都截我看看

发布评论