您现在的位置是:网站首页 > 心得笔记

微信公众号开发——群发接口

盛悦2019-02-20529人围观
简介群发接口是针对于服务号(每个月有4条群发消息的机会) 、订阅号(如果是订阅号,每天可以有一条群发消息的机会)

1、群发接口的介绍

群发接口就是微信公众账号对已关注微信用户进行消息推送,推送类型有很多,单文本、单图文等

2、混淆点

在编辑模式下也可以进行群发接口的使用,但是是基于可视化的图文界面,对于开发者而言,在开发者模式下可以调用高级的群发接口的权限,两者是一样的,编辑模式可以做到可视化、可预览,开发者模式下更灵活。这里需要自己上传一些素材,图片、视频等,上传后会返回media_id。 在代码中调用media_id来标识你上传的资源、在群发消息中就会将对应的素材推动给我们的微信用户

3、media_id

图文接口、语音接口等都需要上传一个media_id,media_id可以理解成一个资源 你上传之后微信服务器会生成一个media_id 就相当于是他的一个唯一标识  你在发送群发消息接口时  你调用media_id其实就是调用他的url地址 他会映射。所以这些资源都要上传到微信公众平台 他会返回media_id

4、注意点

开发中使用测试号(认证后的服务号,每月4次群发消息)建议测试时调用预览接口,预览接口有100次,调用失败还可继续调用,调用成功后再调用正式接口通过openID来群发

5、代码实现部分

在前几篇文章的基础上添加方法:

//群发接口
public function sendMsgAll () {
    //1、获取全局access_token
    $access_token = $this->getWxAccessToken();
    $url = 'https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=' . $access_token;

    //2、组装群发接口数据 array
    //2.1、单文本格式
    /*组装格式从官方文档拿下来
     * {
            "touser":"OPENID",
            "text":{
            "content":"CONTENT"
            },
            "msgtype":"text"
       }
     */

    $array = array (
        'touser' => 'ohQqz0uvRMOdPgQJHGVzX-IUBjyI',//微信用户的openID
        'text' => array('content' => urlencode('群发接口数据组装')),//文本内容
        'msgtype' => 'text',//消息类型
    );

    //3、将数组转成json格式
    $postJson = urldecode(json_encode( $array ));

    //4、调用curl
    $res = $this->http_curl($url, 'post', 'json', $postJson);
    var_dump($res);
}

演示效果图:

w3(1).png


注意:因为我群发文本是中文,所以才会产生上面那三条群发消息格式,处理方法就是在中文前使用urlencode()转化