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


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注入实例
Oct 09 PHP
配置支持SSI
Nov 25 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
PHP自毁程序(慎用)
Jul 09 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
全面了解PHP中的全局变量
Jun 17 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP chr()函数讲解
Feb 11 PHP
php源码的使用方法讲解
Sep 26 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
python中元类用法实例
2014/10/10 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python关于调用函数外的变量实例
2019/12/26 Python
python实现简单的tcp 文件下载
2020/09/16 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
C++的几个面试题附答案
2016/08/03 面试题
非常详细的C#面试题集
2016/07/13 面试题
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
出国留学自荐信
2013/10/25 职场文书
广告词串烧
2014/03/19 职场文书
篮球赛口号
2014/06/18 职场文书
质量主管工作职责
2014/09/26 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
教师师德表现自我评价
2015/03/05 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
python数字图像处理:图像简单滤波
2022/06/28 Python