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


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学习笔记 [预定义数组(超全局数组)]
Jun 09 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
试用php中oci8扩展
Jun 18 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
php base64 编码与解码实例代码
Mar 21 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
php 获取xml接口数据的处理方法
May 31 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 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的正则处理函数总结分析
2008/06/20 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
JS backgroundImage控制
2009/05/19 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
详解JavaScript 的执行机制
2020/09/18 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
Python中的index()方法使用教程
2015/05/18 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
python调用百度语音REST API
2018/08/30 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
Python全栈之列表数据类型详解
2019/10/01 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
人事部专员岗位职责
2014/03/04 职场文书
校园文明倡议书
2014/05/16 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
Python类方法总结讲解
2021/07/26 Python