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


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实现将GB编码转换为UTF8
Nov 25 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
php 应用程序安全防范技术研究
Sep 25 PHP
7个超级实用的PHP代码片段
Jul 11 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
Laravel 5 学习笔记
Mar 06 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
PHP封装的多文件上传类实例与用法详解
Feb 07 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 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极大的增强功能和性能
2006/10/09 PHP
利用 window_onload 实现select默认选择
2006/10/09 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
JQUERY获取form表单值的代码
2010/07/17 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
js实现微博发布小功能
2017/01/12 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
python求列表交集的方法汇总
2014/11/10 Python
python字典DICT类型合并详解
2017/08/17 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Linux上比较文件的命令都有哪些
2012/02/24 面试题
控制工程专业个人求职信
2013/09/25 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
酒店员工检讨书
2014/02/18 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
员工辞职信怎么写
2015/02/27 职场文书
工作时间证明
2015/06/15 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
合作意向书范本
2019/04/17 职场文书