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

 更新时间:2019年06月22日 10:58:16   作者:御风已失琊穹  
这篇文章主要介绍了微信公众号之主动给用户发送消息,需要的朋友可以参考下

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

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

于是乎,当时脑子一热,想着没什么大的问题,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+Mysql无刷新问答评论系统(源码)

    PHP+Mysql无刷新问答评论系统(源码)

    自己写的一个评论系统源码分享给大家,包括有表情,还有评论机制,代码简单易懂,需要的朋友参考下
    2016-12-12
  • laravel 输出最后执行sql 附:whereIn的使用方法

    laravel 输出最后执行sql 附:whereIn的使用方法

    今天小编就为大家分享一篇laravel 输出最后执行sql 附:whereIn的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP中strlen()和mb_strlen()的区别浅析

    PHP中strlen()和mb_strlen()的区别浅析

    这篇文章主要介绍了PHP中strlen()和mb_strlen()的区别浅析,本文探讨的中英混合的字符在使用这个函数时的区别,需要的朋友可以参考下
    2014-06-06
  • thinkphp实现发送邮件密码找回功能实例

    thinkphp实现发送邮件密码找回功能实例

    这篇文章主要介绍了thinkphp实现发送邮件密码找回功能的方法,以实例形式详细讲述了配置文件与功能代码的实现方法,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • Codeigniter框架实现获取分页数据和总条数的方法

    Codeigniter框架实现获取分页数据和总条数的方法

    这篇文章主要介绍了Codeigniter框架实现获取分页数据和总条数的方法,实现了对获取当前页的数据和总条数方法的封装,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • 简单的php文件上传(实例)

    简单的php文件上传(实例)

    PHP上传类太多,这里提供一个简单的php文件上传,一个文件就可以搞定上传。
    2013-10-10
  • laravel异步监控定时调度器实例详解

    laravel异步监控定时调度器实例详解

    这篇文章主要给大家介绍了关于laravel异步监控定时调度器的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • PHP stream_context_create()函数的使用示例

    PHP stream_context_create()函数的使用示例

    这篇文章主要介绍了PHP stream_context_create()函数的使用示例,stream_context_create()函数是用来 创建打开文件的上下文件选项,用于fopen(),file_get_contents()等过程的超时设置、代理服务器、请求方式、头信息设置的特殊过程,需要的朋友可以参考下
    2015-05-05
  • PHP xpath提取网页数据内容代码解析

    PHP xpath提取网页数据内容代码解析

    这篇文章主要介绍了PHP xpath提取网页数据内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)

    Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)

    这篇文章主要介绍了Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels),非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02

最新评论