微信公众号之主动给用户发送消息功能


Posted in PHP onJune 22, 2019

前一段时间项目中遇到一个稍微麻烦一点的问题。

即客户要求,他在后台编辑好文章后要主动给每个用户都发送消息,并可以让用户点击直接进入文章页面。

于是乎,当时脑子一热,想着没什么大的问题,so easy。模板消息不就得了。

后来在写代码的过程中却发现,并不行。

微信公众号中模板消息有很严格的限制。

1.必须有用户主动触发事件方可发送模板消息

2.模板消息一分钟只能发送六十条,超过六十条,不好意思。你懂。

于是乎,就想到了另一种方法:群发消息

但是一看文档中群发消息的限制,发现悲催了

群发消息服务号每个月最多只能发送4条。

而客户要求的是随时随地就能发送.这个4条明显不符合要求的。

怎么办呢?一度陷入困难之中。只好继续查看开发文档。

当看到客服功能时,突然想到,能不能用客服主动给用户发送消息呢?

于是乎,想到就去试验下。

首先,先在公众号后台功能模块中-》添加功能模块  添加   客服功能   模块

如图所示:

然后就进入代码环节了。

先添加客服。也可以公众号后台添加

//先添加客服
function addkf()
{
 $token = getToken();
 $url = 'https://api.weixin.qq.com/customservice/kfaccount/add?access_token='.$token;
 $data = '{
   "kf_account" : "system@system",
   "nickname" : "客服1",
   "password" : "admin",
 }';
 echo https_request($url,$data);
}

然后就是主动发送消息的方法

//获取access_token的方法。
function getToken()
{
 $appid = 'appid';
 $appsecret = 'appsecret';
 $token_file = dirname(dirname(__FILE__)).'/data/token.txt';
 if(!file_exists($token_file) || ((time() - filemtime($token_file)) > 7000)){
  $TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
  $json=file_get_contents($TOKEN_URL);
  $result=json_decode($json);
  $ACC_TOKEN=$result->access_token;
  file_put_contents($token_file,$ACC_TOKEN);
 }else{
  $ACC_TOKEN = file_get_contents($token_file);
 }
 return $ACC_TOKEN;
}
//调用发送方法
function sendmsg($content,$openid)
{
 $token = getToken();
 $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$token;
 $content = '感谢你的关注\n回复你厉害 \n例如<a href=\"http://www.baidu.com\">回复123456</a>';
 $data = '{
  "touser":"'.$openid.'",
  "msgtype":"text",
  "text":
  {
    "content":"'.$content.'"
  }
 }';
 https_request($url,$data);
 return true;
}
/**
 * request 请求
 */
function https_request($url, $data = null){
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
 if (!empty($data)){
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
 }
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($curl);
 curl_close($curl);
 return $output;
}

使用的时候直接调用 sendmsg()方法传值就可以了。

最后上完成的图

如图所示,公众号可以给用户发送消息,而且发送的内容你可以使用html 标签哦

虽然这样感觉很方便,但是同样,微信公众平台对此也有限制。

1.用户必须关注公众号,方可收到信息。

2.用户只能连续收到   20   条客服消息。超过后用户就收不到消息,

超过后,用户必须   主动给公众号发送消息  。或者  点击菜单栏,这样20条消息的限制就会重置。

总结

以上所述是小编给大家介绍的微信公众号之主动给用户发送消息功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

PHP 相关文章推荐
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
php中hashtable实现示例分享
Feb 13 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 #PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 #PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 #PHP
PHP判断函数是否被定义的方法
Jun 21 #PHP
php用户名的密码加密更安全的方法
Jun 21 #PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 #PHP
php精度计算的问题解析
Jun 21 #PHP
You might like
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
php的ajax简单实例
2014/02/27 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
心理咨询专业自荐信
2014/07/07 职场文书
法语专业求职信
2014/07/20 职场文书
户外活动总结
2015/02/04 职场文书
旷工辞退通知书
2015/04/17 职场文书
房产遗嘱范本
2015/08/06 职场文书
Python入门学习之类的相关知识总结
2021/05/25 Python
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers