鉴于这个功能相关的文章,之前都是参考了多个博主的文章,并且插件主要应用于“handsome”主题,所以有很多地方,需要修改代码,又有很多无用的代码。经常有网友会遇到各种各样的问题,无奈。。。所以我把代码全部重写了。。。直接按下面步骤即可,无需修改代码!
申请微信公众号
我这里用的微信测试公众号,申请简单,如果没有其他特殊需求,够用了。传送门:测试公众号
安装时光机
- 下载压缩包
Times_1,传送门:
抱歉,隐藏内容 回复 后可见
- 使用一个新的单独的域名(一级、二级均可,非博客)(微信公众号不支持二级目录作为接口地址),如果你的博客是https://blog.xxx.cn,那么这个域名可以是https://weixin.xxx.cn。
- 将
Times_1解压后,上传到这个域名的根目录下。执行安装https://weixin.xxx.cn/install.php
这里看黑板!敲重点!数据库,直接填写你博客的数据库配置。别担心,不会覆盖或清空,仅仅增加了一个chrison_weixin表。当然,还是要常常做好数据备份工作。
公众号ID和公众号secret填公众号给你的信息。token请填写固定值:spDJ7DdtqJ1nnUdLnfCx。aes_key可以不填。apiKey可以去高德开发者处申请,用于后续地图的显示,选填。
- 填写完信息点击“安装”,如果没有其他提示,则安装完成。然后去微信公众号页面配置服务器接口:URL填写
https://weixin.xxx.cn/server.php;Token填写固定值:spDJ7DdtqJ1nnUdLnfCx。提交后显示配置成功,则公众号与服务器已对接完成。
- 扫码关注自己的公众号,应该会显示一部分帮助信息,发送
绑定关联博客。填写相关信息,点击“绑定”即可。
网址:你的博客地址。如:https://blog.xxx.cn
openid:一般会自动获取
cid:时光机/说说的页面cid(可在后台鼠标放在标题上获得)
cid密钥:时光机/说说的页面内,增加自定义参数timescode,值自行定义,以防止他人操作发布(后台设置的timescode值,要和这里的cid密钥一致)
mid:你想要发布文章的所属分类(可在后台获得)
时光机与博客联动
- 下载压缩包
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;
}- Ver 1.0
1.支持单文字发布
2.支付单图片发布
3.支持图文混合发布
4.支持地图发布
- Ver 2.0
1.支持文章图文发布
2.发送语音仅会保存文件,暂不支持发布
目的地-Destination






视频和语音其实道理差不多,不过语音的效果不太理想,感觉杂音太大了,哈哈
@Jdeal 还有什么其他方式吗,我并不想安装ffmpeg
@Chrison ffmpeg安装很简单哇,我就是用的这个,然后amr转mp3,还有就是不通过本地,现在有很多云存储自带音频转格式的,可以直接回调输出,其实speex格式是高清的,不过我没研究speex转mp3,改天研究下,不然8K采样率还是太嘈杂了,16K采样率的应该会高很多。
@Jdeal QQ上找你了,没回我
@Jdeal 我是说语音条显示和播放的代码,不是转文字的
@Jdeal 语音显示的不用搞了,哈哈,刚刚看官方文档11月1日起下线翻译文字功能,没有调用接口了。
@Jdeal 网上看了下,有个amr-js,可以直接转码播放。不知道行不行。另外,你的语音功能显示+播放的那段html+css能不能共享下我前端小白
@Jdeal 语音我都懒得弄了。之前看文档,好像还有个高清版的下载方式。
不知道能不能捣鼓成功
@星图 为什么看不到
@星图 现在看看呢!已经改的很简单了~
@Chrison 直接在第一行?php的下一行写就行了
@Chrison 请问实际编辑应该如何写入代码引入文件require_once 'times/func.php';
来看看
@1 违规评论(已过滤)
来看看
@fv 欢迎
哎呦,不错哦~
@TeacherDu 杜老师有没有amr快速转mp3的方法?不想在服务器安装ffmpeg。
我也来试试这个,虽然很少用微信发说说
@祈里 好的。试用下。才调试了一版。
反馈:1、引入 require_once 'times/func.php';后页面和文章编辑页设置栏及字段栏不见了;2、公众号已绑定,但访问/server.php说未绑定。测试,无反应。
@荒野孤灯 一步一步来,首先确保,引入require_once 'times/func.php';这个不报错。
@Chrison 稍等,我用这个主题试一次
@荒野孤灯 引入 require_once 'times/func.php';后网站前端打不开
@荒野孤灯 DyUtils.php 中,搜索方法CommentAuthor,删除
@Chrison 发送‘开始’。。。发图片。。。发文字。。。发。。。发。。。发送'结束'
@Chrison 3.支持图文混合发布 ,这个怎么发?
@Chrison 重新下载Time_1,覆盖server.php即可。1.支持单文字发布2.支付单图片发布3.支持图文混合发布4.支持地图发布
@Chrison 因为是你的服务器帮你发的,就是你服务器的IP,你的好像是香港。你可以去你的IP转省份的地方,单独处理成别的文字。我是单独判断处理了。`function ip2regionFull($ip){$data = ip2region($ip); if($ip === '47.11.11.11'){ $data['province'] = '阿里云'; $data['city'] = ''; } return $data['province'].$data['city'];}`
@Chrison 牛 逼
@Chrison 刚刚删除的那一段,是因为和function里的方法重复了。可能也就仙人掌主题正好有吧。主要是我这边测试,上面会提示第几行有问题。你的应该没有显示报错说明,所以看不到。下午可以再更新一部分。敬请期待。
@Chrison 还有个问题,为什么ip地址都是亚太地区?
@Chrison 好了,小白鼠任务完成。
@Chrison 让你当吃螃蟹的人,v1.0版 就是文字的发布,其他我还没调试完。
@Chrison 图片? 文字可以?还是都不行
@Chrison 删了这个后可以了,但不能发图片:信息缺失
@荒野孤灯 引入的前后上下文都截图看下。server.php是公众号处填写,不会说未绑定吧,只会说失败。几个地方的图可以都截我看看
@Chrison 违规评论(已过滤)
@荒野孤灯 违规评论(已过滤)
@荒野孤灯 这个路径对吗。我昨天测试过,就是引用是空内容,也是不会报错的。
@Chrison 直接访问server.php,
@荒野孤灯 没反应后,我就试着看看
@荒野孤灯 不要自己访问server啊,这个地址是公众号那边填的,是要带token请求的
是嘛,就是要这样的傻瓜式教程,我这个小白也能看懂了,哈哈
@荒野孤灯 快试试!就一次安装,一次绑定。也没啥其他操作了。