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


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的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
php获取系统变量方法小结
May 29 PHP
PHP会话处理的10个函数
Aug 11 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
php如何获取文件的扩展名
2015/10/28 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
JS简单计算器实例
2015/01/20 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
jquery实现数字输入框
2017/02/22 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
基于pandas数据样本行列选取的方法
2018/04/20 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
python连接PostgreSQL过程解析
2020/02/09 Python
Python各种扩展名区别点整理
2020/02/27 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
幼儿园开学家长寄语
2014/01/19 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
安全责任协议书范本
2016/03/23 职场文书
浅谈Python中的正则表达式
2021/06/28 Python
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫