php微信公众号无限制群发,微信公众号无限群发 - viki_php的个人空间 - OSCHINA - 中文开源技术交流社区...
/*
Author:yf
使用说明:微信公众号无线群发接口,使用实例:
$test = new SendAllMsg("你的appId","你的appSecret");
$test->sendMsgToAll(); //调用群发方法
注:1.使用条件:认证号或测试号
2.群发消息内容可为图文、文本、音乐等,$data具体内容参照微信开发文档/客服接口
3.若用户量过万,需修改getUserInfo(),具体参照信开发文档/获取关注者列表
新手上路,大神们多多指点,谢谢
*/
interface iSendAllMsg{
function getData($url); //curl 发送get请求
function postData($url,$data); //curl 发送post请求
function getAccessToken(); //在构造方法中已调用该方法来获取access_token,注意它在wx服务器的保存时间7200s
function sendMsgToAll(); //群发消息方法,发送的消息$data 可自行修改
}
class SendAllMsg implements iSendAllMsg{
private $appId;
private $appSecret;
private $access_token;
//
public function __construct($appId, $appSecret) {
$this->appId = $appId;
$this->appSecret = $appSecret;
$this->access_token = $this->getAccessToken();
}
//
function getData($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
//
function postData($url,$data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);
return $tmpInfo;
}
//
function getAccessToken(){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appId."&secret=".$this->appSecret;
$res = $this->getData($url);
$jres = json_decode($res,true);
$access_token = $jres['access_token'];
return $access_token;
}
//
private function getUserInfo(){
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$this->access_token;
$res = $this->getData($url);
$jres = json_decode($res,true);
//print_r($jres);
$userInfoList = $jres['data']['openid'];
return $userInfoList;
}
function sendMsgToAll(){
$userInfoList = $this->getUserInfo();
$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$this->access_token;
foreach($userInfoList as $val){
$data = '{
"touser":"'.$val.'",
"msgtype":"text",
"text":
{
"content":"测试一下,抱歉打扰各位"
}
}';
$this->postData($url,$data);
}
}
}
$test = new SendAllMsg("YOURappId","YOURappSecret");
$test->sendMsgToall();
?>
php微信公众号无限制群发,微信公众号无限群发 - viki_php的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- 申请一个Java公众号怎么命名_警惕不规范的变量命名 - Java公众号_Kirito的技术分享的个人空间 - OSCHINA - 中文开源技术交流社区...
就在最近,项目组开始强调开发规范了,今天分享一个变量名命名不规范的小案例,强调一下规范的重要性. Boolean变量名命名规范 16年底,阿里公开了<Java开发规范手册>,其中有一条便是 ...
- 卡券php小程序,微信小程序领取卡券 - osc_88a08cel的个人空间 - OSCHINA - 中文开源技术交流社区...
微信小程序领取卡券 标签(空格分隔): php 开发前需要准备的工作 1 小程序和公众号要有绑定 2 小程序和该公众号要绑定到同一个开发平台下 [https://open.weixin.qq.com/ ...
- php 小程序 运动步数_小程序同步微信步数 - xiangqian1的个人空间 - OSCHINA - 中文开源技术交流社区...
小程序获取微信运动步数,咱们看文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunDat ...
- 微信步数C语言程序,获取微信步数 - osc_1v2pb1nt的个人空间 - OSCHINA - 中文开源技术交流社区...
const util = require('../../utils/util.js') Page({ /** * 页面的初始数据 */ data: { runData:[], }, /** * 生命周 ...
- 小微商户申请php,微信小微商户申请入驻 - osc_r8q2esik的个人空间 - OSCHINA - 中文开源技术交流社区...
public static string ApplyEnter(string Data) { if (string.IsNullOrWhiteSpace(Data)) return ProtocolM ...
- 服务器图文消息发送规则,群发图文规则 - CurtainRight的个人空间 - OSCHINA - 中文开源技术交流社区...
2.上传图文接口 内容信息对比: 注意:除了群发图文之外,其余的图文消息都是没有Content,所以都是自己写页面,然后通过URL打开新的页面,那么你的图片就不能访问微信服务器上的图片.因为现在未经授 ...
- linux 输入法框架,常用输入法框架简介 - 微信公众号:算法与编程之美 - OSCHINA - 中文开源技术交流社区...
前言 之前使用的一直都是ibus-sunpinyin中文输入法,但在使用的过程中发现很多的词组都找不到,比较麻烦,所以打算换一下ibus-googlepinyin输入法,还没用,也不知道具体的效果怎么 ...
- php 正则车架号,正则判断工具类 - 我的开源中国 - OSCHINA - 中文开源技术交流社区...
package com.gulf.utils; import java.text.ParseException; import java.text.SimpleDateFormat; /** * 正则 ...
- 微信公众号无限群发消息 v5.7.1 多功能版全开源 + 配置教程
简介: 公众号无限群发消息模块,为运营而生 1.关于普通版与多功能版区别: 普通版:只能发文字,每次只能发500人,多了会卡死,需要再选下五百人(且不再更新). 多功能版:支持TD退订功能(用户发送t ...
最新文章
- SpringBoot 多个src文件夹,入口类的位置
- 教程:15、系统日志及日志分析
- 检测一组电动车电瓶好坏要多久?
- python加密解密库openssl_OpenSSL和Python实现RSA Key公钥加密私钥解密
- php asserttrue,PHP8.0的新特性:错误处理方面已经改进
- Spring AOP方法分析
- 版本为2.5的OpenMP规范中的编译制导指令汇总
- mysql 8.0远程连接_mysql8.0 安装 修改密码 允许远程连接
- cacti监控Memcached
- 三层交换机如何配置?如何实现不同vlan间的通信?
- math库是python语言的数学模块_Python入门-函数库(模块)
- timesten mysql_timesten:TT0802错误
- STM32 SPI 主模式下配置(神州三号开发板spi.c解析上)
- SQL server 插入日期处理
- 手机和电脑如何连接无线投影仪
- 离线安装python包_补充
- atlas mysql_使用Atlas配置MySQL读写分离
- 如何在 PC 上识别微信二维码
- js防抖、节流(立即执行/非立即执行 + 立即取消等待)
- 量化分析师的Python日记【Q Quant兵器谱之偏微分方程2】
热门文章
- 【学习笔记】云服务器入门教程(搭建云盘、网站,安装anaconda、WinSCP、宝塔面板等)
- java value是什么意思_“预期 Value ,发现特质”是什么意思?
- 做自媒体新手怎么入门?第一步教你增加短视频流量
- SpringBoot重点详解--使用过滤器映射访问路径
- CRM销售管理系统能够给企业带来哪些好处?
- Typora使用方法
- 医学图像分割数据集与制作自己的数据集
- 解决:Word 不显示 EndNote 插件(Word 插件不显示问题通用)
- cpucores_Steam软件《CPUCores》能最大限度提升游戏帧数 笔记本玩家福利
- 智慧水务信息化平台-智慧水务信息化管理系统解决方案