分享

群发文本消息 - 傻瓜式微信开发教程21

 取经悟能 2015-10-10
我们来学习群发消息里最简单的群发一个文本消息.
群发消息的文档在这里 http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html

其中群发文本消息是最简单的,因为我们不需要提前上传图文之类的素材,
直接调用发送api就可以了.

所以我们只需要关注这些内容:

根据分组进行群发【订阅号与服务号认证后均可用】

接口调用请求说明

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN
POST数据说明

POST数据示例如下:
文本:
  1. {
  2.    "filter":{
  3.       "is_to_all":false
  4.       "group_id":"2"
  5.    },
  6.    "text":{
  7.       "content":"CONTENT"
  8.    },
  9.     "msgtype":"text"
  10. }
复制代码


其中的参数如下:

参数  是否必须    说明
filter  是   用于设定图文消息的接收者
is_to_all   否   用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户,选择false可根据group_id发送给指定群组的用户
group_id    否   群发到的分组的group_id,参加用户管理中用户分组接口,若is_to_all值为true,可不填写group_id
mpnews  是   用于设定即将发送的图文消息
media_id    是   用于群发的消息的media_id
msgtype 是   群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video,卡券为wxcard
title   否   消息的标题
description 否   消息的描述
thumb_media_id  是   视频缩略图的媒体ID


逐个介绍一下:
`filter` 指要发送给那些人,
   
  1. "filter":{
  2.       "is_to_all":true
  3.    }
复制代码

   代表发送给全体

  
  1. "filter":{
  2.       "is_to_all":false
  3.       "group_id":"2"
  4.    }
复制代码

   代表发送给用户分组id为2的小组

另一种发送方式为按照openid列表发送:
根据OpenID列表群发【订阅号不可用,服务号认证后可用】

接口调用请求说明

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN

文本:

  1. {
  2.    "touser":[
  3.     "OPENID1",
  4.     "OPENID2"
  5.    ],
  6.     "msgtype": "text",
  7.     "text": { "content": "hello from boxer."}
  8. }
复制代码


`touser`中为需要接收的用户openid列表

重新创建一个文件`group_msg.php`,访问的时候执行群发函数.

ok,代码很简单,
需要注意的是json_encode会把中文重新编码,
为了解决这个问题,
我们需要先把中文用urlencode,
json_encode完成后再用urldecode回复中文

  1. <?php
  2.   class TemplateMsgSender
  3.   {
  4.       private $token = '';

  5.       function __construct($config=array('token'=>'', 'aeskey'=>'', 'appid'=>'', 'appsecret'=>'', 'debug' => FALSE))
  6.       {
  7.           $token = $config['token'];
  8.           $aeskey = $config['aeskey'];
  9.           $appid = $config['appid'];
  10.           $debug = $config['debug'];

  11.           $this->appid = $config['appid'];
  12.           $this->appsecret = $config['appsecret'];
  13.       }

  14.       public function getToken(){
  15.         if($this->token != ''){
  16.             return $this->token;
  17.         }

  18.         // 获取到 appid 和 appsecret
  19.         $appid = $this->appid;
  20.         $appsecret = $this->appsecret;
  21.         // 构建获取access_token的url
  22.         $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
  23.         // 构建http请求并执行
  24.         $ch = curl_init();
  25.         curl_setopt($ch, CURLOPT_URL, $url);
  26.         curl_setopt($ch, CURLOPT_HEADER, false);
  27.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  28.         $result=curl_exec($ch);
  29.         curl_close($ch);
  30.         // 解析返回的json数据
  31.         $jsoninfo = json_decode($result);
  32.         // 读取json中的access_token字段
  33.         $token = $jsoninfo->access_token;

  34.         $this->token = $token;
  35.         return $token;
  36.       }

  37.       public function testGroupTxtMsg(){
  38.         $token = $this->getToken();

  39.         $url = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token={$token}";
  40.         $arrayData = array(
  41.           'filter' => array(
  42.             'is_to_all' => true
  43.           ),
  44.           'text' => array(
  45.             'content' => urlencode('这里是消息内容')
  46.           ),
  47.           'msgtype' => 'text'
  48.         );
  49.         $sendJsonData = urldecode(json_encode($arrayData));

  50.         $ch = curl_init($url);
  51.         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  52.         curl_setopt($ch, CURLOPT_POSTFIELDS, $sendJsonData);
  53.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  54.         var_dump(curl_exec($ch));
  55.     }
  56.   }


  57.   $wechat = new TemplateMsgSender(array(
  58.     'token' => 'weixin',
  59.     'aeskey' => 'bVmX0q9P9gwnEtl8kTP9C0B2gmZJ2yzS9H5hFQs78L0',
  60.     'appid' => 'wx5d1fb434a1652ae8',
  61.     'appsecret' => '1fc8b39875b830b558b0648f1d93721e',
  62.     'debug' => true
  63.     ));
  64.   $wechat->testGroupTxtMsg();
复制代码


  访问这个页面就可以看到调用微信api的返回数据了.

  附件中有完整的工程代码.
  记得把参数改为自己的测试账号的参数!!!
weixinshow001.zip (204.83 KB, 下载次数: 2)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多