实现微信公众号主动推送消息
1. 介绍
微信公众平台提供了一种接口,可以实现公众号主动推送消息给关注者。本文将介绍如何使用php简陋版实现微信公众号主动推送消息。
2. 准备工作
2.1. 注册微信公众号
如果还没有微信公众号,需要先注册一个。具体的注册步骤不在本文讨论范围之内,请自行查阅微信公众平台的文档。
2.2. 获取公众号的AppID和AppSecret
在微信公众平台上,在“开发->基本配置”页面可以找到AppID和AppSecret。需要先填写一些基本的信息,例如公众号的名称、头像等,才能获取到AppID和AppSecret。
2.3. 配置服务器
微信的服务器会向公众号服务器发送事件消息,因此需要在服务器上部署一个php程序,用于响应微信服务器的请求。
2.4. 下载SDK
微信提供了官方的php-sdk,可以帮助快速开发微信公众号应用。可以在官方网站上下载。
3. 实现
3.1. 获取access_token
在使用微信接口之前,需要先获取access_token。access_token是微信服务器用于验证公众号身份的一个令牌。获取access_token的方式分为两种:一种是通过固定的AppID和AppSecret获取,另一种是通过中控服务器获取。
3.2. 发送消息
获取到access_token之后,就可以使用微信提供的接口向关注者发送消息。微信提供了两种方式发送消息:一种是通过客服接口发送,另一种是通过模板消息发送。
4. 总结
本文介绍了如何使用php简陋版实现微信公众号主动推送消息。需要注意的是,微信公众平台不允许使用简陋版,推荐使用官方的php-sdk。同时,需要注意服务器的安全问题,例如防止XSS攻击等。
代码实现:
//获取access_token
function getAccessToken(){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret;
$result = httpGet($url);
$json = json_decode($result, true);
$access_token = $json["access_token"];
return $access_token;
}
//发送文本消息
function sendTextMessage($openid, $content){
$access_token = getAccessToken();
$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
$data = [
"touser"=>$openid,
"msgtype"=>"text",
"text"=>[
"content"=>$content
]
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
$result = httpPost($url, $json);
return $result;
}