微信跟QQ一样可以创建组名,删除组名,修改组名,查询组名,这些操作都是一系列的接口,只需要调用相关的接口,并以curl的形式进行发送,便可以获得相关的结果
创建分组
一个公众账号,最多支持创建100个分组。
接口调用请求说明
http请求方式: POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
POST数据格式:json
POST数据例子:{"group":{"name":"test"}}
参数说明
参数 说明
access_token 调用接口凭证
name 分组名字(30个字符以内)
返回说明 正常时的返回JSON数据包示例:
{
"group": {
"id": 107,
"name": "test"
}
}
下面是相关代码的实现
我们需要通过curl的形式将数据包发送过去,返回的结果是一个StdClass形式的json数据,我们需要将stdClass进行转换为数组形式,所以我们创建一个func.php文件,后面的组的相关操作都基于这些函数
<?php
//设定appID 和secret
define ("APPID","wx70fe852945a945b6",true);
define ("SECRET",'d05c2fc161d71c8317331a39044a7d93',true);
$APPID="wx70fe852945a945b6";
$SECRET="d05c2fc161d71c8317331a39044a7d93";
function curl($url,$data=null)
{
//初始化
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, $url);//设置传输链接
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);//设置SSL凭证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//是否显示在浏览器上
if(!empty($data))
{
//进行post数据
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
$result=curl_exec($curl);//执行curl
curl_close($curl);//关闭curl
return $result;
}
function transition ($data)
{
if(is_object($data))
{
$data=(array)$data;
}
if(is_array($data))
{
foreach($data as $key=>$value)
{
$data[$key]=transition($value);
}
}
return $data;
}
//将多维数组转成字符串
function recount($result)
{
if(is_array($result))
{
foreach($result as $key=>$value)
{
recount($value);
return $value;
}
}
}
//access_token链接地址
$access_token_url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$SECRET";
//获取access_token.将返回的json格式转成数组,返回一个数组形式的access_token
$access_token=(array)json_decode(curl($access_token_url));
$access_token=$access_token['access_token'];
?>利用上面的access_token我们便可以做我们想做的任何事了
首先我们进行组的创建,我们将文件命名为creategroup.php
1 界面展示
看起来很简单的HTML的代码,相信有HTML基础的都能写出
那么如何创建组呢?很简单,我们只需将创建组的API链接提交过去就可以了
相关的代码
<?php echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';
?>
<!doctype html>
<html>
<head>
<title>无标题文档</title>
</head>
<body>
<form action="#" method="post">
<p>新建分组</p>
<input type="text" name="tag" placeholder="新建一个分组">
<input type="submit" name="-1" id="sub" value="提交">
</form>
<?php
//如果提交成功,那么进行组的创建
if(isset($_POST[-1]))
{
function create_group()
{ require "func.php";
$create_url="https://api.weixin.qq.com/cgi-bin/tags/create?access_token=$access_token";
$tag=$_POST['tag'];//获取组名
$poststr="
{
\"tag\":
{
\"name\":\"$tag\";
}
}
";
if($result=curl($create_url,$poststr))
{
echo "<script type=\"text/javascript\">alert('执行成功,三秒之后将自动跳回主页')</script>";
//设置跳转回主页
echo "<script type=\"text/javascript\">setTimeout(window.navigate(\"getgroup.php\"),3000)</script>";
}
else
{echo "<script type=\"text/javascript\">alert('执行失败')</script>";}
}
create_group();
}
?>
</body>
</html>2:接下来是展示所有的组名,我们先看看微信官方的文档
查询所有分组
接口调用请求说明
http请求方式: GET(请使用https协议)https://api.weixin.qq.com/cgi-bin/groups/get?access_token=ACCESS_TOKEN
参数说明
参数 说明
access_token 调用接口凭证
返回说明 正常时的返回JSON数据包示例:
{
"groups": [
{
"id": 0,
"name": "未分组",
"count": 72596
},
{
"id": 1,
"name": "黑名单",
"count": 36
},
{
"id": 2,
"name": "星标组",
"count": 8
},
{
"id": 104,
"name": "华东媒",
"count": 4
},
{
"id": 106,
"name": "★不测试组★",
"count": 1
}
]
}参数说明
参数 说明
groups 公众平台分组信息列表
id 分组id,由微信分配
name 分组名字,UTF8编码
count 分组内用户数量
错误时的JSON数据包示例(该示例为AppID无效错误):
官方文档对于返回的json数据已经很明了了,一个组名里边包含了基本的信息,组id,组名以及组内的用户数量。我们无法直接将返回的json数据直接显示到页面上,那么我们如何解析json呢?微信给我们返回的是一个stdclass类型的json,所以第一步我们需要将json转为数组,php中有一个json_decode()函数,此函数能够将json数据转为stdclass的数组,stdclass并不等于数组,所以我们还要讲stdclass转化为array形式,在func.php中transition()函数就有这样的功能。
我们先看看页面显示样子,看看我们通过curl从腾讯上获取的数据是什么样的
上图我们创建了一个表,第一行是一个创建新组的功能,在以下的行中,我们能够看到组编号,组名,以及组内人数。那么这个是如何做到的呢?很简单,当我们已经获取到返回

