1: Erstellen Sie eine Benutzergruppe
Wie QQ kann WeChat Gruppennamen erstellen, Gruppennamen löschen und Gruppennamen abfragen. Diese Vorgänge müssen nur aufgerufen werden Wenn Sie die relevanten Schnittstellen verwenden und in Form von Curl senden, erhalten Sie relevante Ergebnisse.
Gruppen erstellen
Ein öffentliches Konto unterstützt die Erstellung von bis zu 100 Gruppen.
Beschreibung der Schnittstellenaufrufanforderung
http-Anfragemethode: POST (bitte verwenden Sie das https-Protokoll) https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
POST-Datenformat: json
POST-Datenbeispiel: {"group":{"name":"test"}}
Parameterbeschreibung
Parameterbeschreibung
access_token Anmeldeinformationen der aufrufenden Schnittstelle
Name Gruppenname (innerhalb von 30 Zeichen)
Rückgabebeschreibung Beispiel eines zurückgegebenen JSON-Datenpakets im Normalfall:
{
„group“: {
„id“: 107,
„name“: „test“
}
}
Das Folgende ist die Implementierung des relevanten Codes
Wir müssen das Datenpaket über Curl senden. Das zurückgegebene Ergebnis sind JSON-Daten in Form von StdClass array.form, also erstellen wir eine func.php-Datei und die zugehörigen Vorgänge der nachfolgenden Gruppen basieren auf diesen Funktionen
<?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']; ?>
Mit dem oben genannten access_token können wir tun, was wir wollen
Zuerst erstellen wir die Gruppe, wir nennen die Datei creategroup.php
1 Schnittstellenanzeige
Es sieht aus wie ein sehr einfacher HTML-Code, ich glaube, jeder mit HTML-Grundlagen kann ihn schreiben
Wie erstellt man also eine Gruppe? Es ist ganz einfach, wir müssen nur den API-Link senden, um die Gruppe zu erstellen
Zugehöriger Code
<?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: Als nächstes werden alle Gruppennamen angezeigt. Schauen wir uns zuerst WeChat an offizielles Dokument
Alle Gruppen abfragen
Anweisungen zur Anforderung von Schnittstellenaufrufen
HTTP-Anforderungsmethode: GET (bitte verwenden Sie das https-Protokoll) https://api.weixin.qq. cgi-bin/groups/get?access_token=ACCESS_TOKEN
Parameterbeschreibung
Parameterbeschreibung
access_token Anmeldeinformationen der Aufrufschnittstelle
Rückgabebeschreibung Normal JSON-Datenpaket zurückgeben Beispiel:
{ "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 } ] }
Parameterbeschreibung
Parameterbeschreibung
Gruppen Öffentliche Plattform-Gruppeninformationsliste
id Gruppen-ID, zugewiesen von WeChat
Name Gruppenname, UTF8-Kodierung
Anzahl Anzahl der Benutzer in der Gruppe
Beispiel für ein JSON-Datenpaket, wenn ein Fehler auftritt (dieses Beispiel ist ein AppID-Ungültigkeitsfehler):
Die Die offizielle Dokumentation enthält sehr klare Angaben zu den zurückgegebenen JSON-Daten. Ein Gruppenname enthält grundlegende Informationen, die Gruppen-ID, den Gruppennamen und die Anzahl der Benutzer in der Gruppe. Wir können die zurückgegebenen JSON-Daten nicht direkt auf der Seite anzeigen. Wie analysieren wir also JSON? Was WeChat an uns zurückgibt, ist ein JSON vom Typ stdclass. Im ersten Schritt müssen wir json in ein Array konvertieren. Diese Funktion kann JSON-Daten in ein Array von stdclass konvertieren nicht gleich einem Array, daher müssen wir auch über die Konvertierung von stdclass in Array-Form sprechen. Die Funktion transit() in func.php hat eine solche Funktion.
Werfen wir zunächst einen Blick auf die Seitenanzeige und sehen, wie die Daten aussehen, die wir von Tencent über Curl erhalten.
Im obigen Bild haben wir eine Tabelle erstellt neu Die Funktion der Gruppe. In den folgenden Zeilen können wir die Gruppennummer, den Gruppennamen und die Anzahl der Personen in der Gruppe sehen. Wie wird das gemacht? Es ist ganz einfach. Nachdem wir die zurückgegebenen JSON-Daten erhalten haben, verpacken wir die JSON-Daten und machen den JSON in eine Array-Form. Wie implementiert man also die Datenverpackung? Es ist auch sehr einfach, die Analysefunktion immer wieder aufzurufen, sie schließlich in ein Array umzuwandeln und dann das Array zu durchlaufen.
Quellcode anzeigen: getGroup.php
<body> <div id="box"> <div id="group"> <?php require "func.php"; $groupurl="https://api.weixin.qq.com/cgi-bin/groups/get?access_token={$access_token}"; $result=json_decode(curl($groupurl));//获取包装之后的数据,以数组的形式存储 //$result=curl($groupurl); //将STDclass类型转为数组类型 function G_transition ($data) { if(is_object($data)) { $data=(array)$data; } if(is_array($data)) { foreach($data as $key=>$value) { $data[$key]=G_transition($value); } } return $data; } $result=G_transition($result); function G_recount($result) { if(is_array($result)) { foreach($result as $key=>$value) { G_recount($value); return $value; } } } $resultG=G_recount($result); echo "<table border=\"1px dashed\" bordercolor=\"#FF3333\">"; echo "<tr><th colspan=\"3\"><a href=\"createGroup.php\">创建一个新组</a></th></tr>"; echo "<th>编号</th><th>组名</th><th>人数</th>"; for($i=0;$i<count($resultG);$i++) { echo "<tr>"; foreach ($resultG[$i] as $key=>$value) { if($key=='id') { echo "<td align=\"center\"title=\"\">[$value]<a href=\"delete.php?num=$value\">删除</a><a href=\"modify.php?num=$value\">修改</a></td>"; } else { echo "<td> $value</td>"; } } echo "</tr>"; } echo "</table>"; ?> </div> <hr/> <div> <hr/>
3: Wie ändern wir den Gruppennamen
修改分组名
接口调用请求说明
http请求方式: POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
POST数据格式:json
POST数据例子:{"group":{"id":108,"name":"test2_modify2"}}
参数说明
参数 说明
access_token 调用接口凭证
id 分组id,由微信分配
name 分组名字(30个字符以内)
返回说明 正常时的返回JSON数据包示例:
{"errcode": 0, "errmsg": "ok"}
错误时的JSON数据包示例(该示例为AppID无效错误):
官方文档提供了修改分组名的接口,所以我们可以做一个修改的链接和一个修改组的modify.php文件
根据官方文档,我们需要通过组id才能进行修改,根据我们在创建组的时候传输过来的json数据中我们可以获取到组id,所有我们可以通过创建链接的方式,当点击链接的时候,会把组id以get的方式传送到modify文件中,而modify.php可以通过$_GET的形式接收组id.
我们先写好这个传送组id的链接,
for($i=0;$i<count($resultG);$i++) { echo "<tr>"; foreach ($resultG[$i] as $key=>$value) { if($key=='id') { echo "<td align=\"center\"title=\"\">[$value]<a href=\"delete.php?num=$value\">删除</a><a href=\"modify.php?num=$value\">修改</a></td>"; } else { echo "<td> $value</td>"; } } echo "</tr>"; }
代码中,我们对返回的数组进行遍历,如果发现key值是id,那么我们将值获取过来并且加入到链接尾部,注意get方式的写法
echo "
跳转到modify.php页面后,我们进行相关的处理,在该页面上,我们仍然有一个HTML输入框
代码如下:
<form action="#" method="post"> <p>更新组名</p> <input type="hidden" name="num" value="<?php echo $_GET['num']?>"> <input type="text"id="modify" name="name"> <input type="submit" value="修改" name="-1"> </form> <?php //此程序用于修改标签组 function modify() { $num=$_POST['num']; $name=$_POST['name']; require "func.php"; $modify_url="https://api.weixin.qq.com/cgi-bin/tags/update?access_token=$access_token"; //post过去的数据 $poststr=" { \"tag\": { \"id\":\"$num\", \"name\":\"$name\" } } "; $result=(array)json_decode(curl($modify_url,$poststr)); $result=$result['errmsg']; if($result=='ok') { echo "<script type=\"text/javascript\"> alert(\"$result\"); </script>"; //进行页面跳转 echo "<script type=\"text/javascript\"> setTimeout(window.location.href=\"getgroup.php\",3000); </script>"; } else { echo "<script type=\"text/javascript\"> alert('wrong'); </script>"; } } if(isset($_POST['-1'])) { modify(); } ?>
如果执行成功,那么会进行弹出提醒框,等待五秒后自动跳转回getGroup.php页面
4:删除组
组名一般不允许删除,但是微信平台仍然给出了相关的删除接口
注意本接口是删除一个用户分组,删除分组后,所有该分组内的用户自动进入默认分组。 接口调用请求说明
http请求方式: POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/groups/delete?access_token=ACCESS_TOKEN
POST数据格式:json
POST数据例子:{"group":{"id":108}}
参数说明
参数 说明
access_token 调用接口凭证
group 分组
id 分组的id
返回说明 正常时的返回JSON数据包示例:
通过传递的json数据,我们只需要将组id进行传递到delete.php页面并进行相关的删除操作即可
代码显示:
<?php //该段程序用来删除组标签,成功之后会给予提示,并且跳转回getgroup.php页面 function delete() { $num=$_GET['num'];//接收来自getgroup页面的编号 require "func.php"; $delete_url="https://api.weixin.qq.com/cgi-bin/tags/delete?access_token=$access_token"; $data=json_encode(array("tag"=>array("id"=>$num))); //如果curl函数执行成功,那么会返回一个状态值 if($result=curl($delete_url,$data)) { echo "<script type=\"text/javascript\">alert('执行成功,三秒之后将自动跳回主页')</script>"; //设置跳转回主页 echo "<script type=\"text/javascript\">setTimeout(window.history.back(-1),8000)</script>"; } else {echo "<script type=\"text/javascript\">alert('执行失败')</script>";} } delete(); ?>
5:对组成员进行批量移动
有时候我们需要对组内的成员进行移动到其他的组里面,在这点上,微信平台也给出了相应的接口我们先看官方的文档说明
批量移动用户分组
接口调用请求说明
http请求方式: POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/groups/members/batchupdate?access_token=ACCESS_TOKEN
POST数据格式:json
POST数据例子:{"openid_list":["oDF3iYx0ro3_7jD4HFRDfrjdCM58","oDF3iY9FGSSRHom3B-0w5j4jlEyY"],"to_groupid":108}
参数说明
参数 说明
access_token 调用接口凭证
openid_list 用户唯一标识符openid的列表(size不能超过50)
to_groupid 分组id
返回说明 正常时的返回JSON数据包示例:
{"errcode": 0, "errmsg": "ok"}
从传递的json数据可以看到,具有一个open_list和一个to_groupid,分别表示要移动的组成员的openid和将要移动的组id.那么我们如何开始移动呢?现在已基本清楚了,只需要把openid传递到open_list,将组id传递到to_groupid中,然后将包装好的json数据通过curl函数post过去.在批量分组之前,我们还要知道一件事,如何获取用户的相关信息,这个信息指的是用户微信上设置的性别,省份,国家,语言,所属组等等的相关信息,同样,微信提供了获取用户信息的接口,参照上述解决方法就可以获取到用户的相关的信息
以下是获取到的用户表
通过第一列的选择之后,在选择要分的组,点击移动就可以将用户移动到想要的组里面,下图是移动后的展示
所属组编号发生了变化
源代码展示
<form action="move.php" method="post"> <table border="1px"> <th>选择移动</th> <th>昵称</th> <th>性别</th> <th>语言</th> <th>所在城市</th> <th>省份</th> <th>国家</th> <th>头像</th> <th>加入时间</th> <th>备注名</th> <th>所属组</th> <th rowspan="10"> <?php echo " <select name=\"group\">"; $count=count($resultG); foreach($resultG as $key)//遍历包装好的json数据,已经转成了多维数组 { echo "<option value=\"$key[id]\" >$key[name] </option>"; $count--; //获取组ID } echo "</select>"; echo "<input type=\"submit\" name=\"-1\" value=\"移动\">"; ?> </th> <?php foreach($list['data'] as $key) { //$list['data']是已经包装好的json数据,将原来的stdclass转为了多维数组 // $result=count($key); //var_dump($result); foreach($key as $value) { echo "<tr>"; $info_url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$value&lang=zh_CN"; $info=transition(json_decode(curl($info_url))); //var_dump($info); //echo "<hr>"; // global $userinfo; //$userinfo=$info; //var_dump($userinfo); foreach($info as $key=>$value) { //对表格进行相关的修饰,进行相关的判断 switch($key) { //如果是id,那么做成一个复选框 case "openid": echo "<td align=\"center\"> <input type=\"checkbox\" value=\"$value\"name=\"openid[]\"/> </td>"; case "subscribe"://忽略相关的描述,不对这个字段生成列 break; //如果是性别,性别值1代表男,0代表女,2代表并未填写 case "sex": if($value==1) { echo "<td>男</td>"; } else if($value==0) { echo "<td>女</td>"; } else { echo "<td>暂未填写</td>"; } break; //如果是头像链接,那么生成一个50*50像素的图片 case "headimgurl"; echo "<td> <img src=\"$value\" height=\"50px\" width=\"\50px\"> </td>"; break; //以下是默认列 case "nickname": case "language": case "city": case "province": case "country": case "subscribe_time": echo "<td>$value</td>"; break; //如果remark的值为空,那么备注名是空值 case "remark": if(empty($value)) { echo "<td>暂无</td>"; } else { echo "<td>$value</td>"; } break; case "groupid": echo"<td>$value</td>"; break; } } echo "</tr>"; } } ?> </table> </form> </div> <hr / color=\"#9900CCd\"> </div> </body> move.php的代码 <?php //此程序用于移动分组 $member=array(); $member=$_POST['openid'];//获取选中的openid $groupid=$_POST['group'];//获取组id require "func.php"; $move_url="https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=$access_token"; for($i=0;$i<count($member);$i++) { $poststr="{\"openid\":\"$member[$i]\",\"to_groupid\":$groupid}"; $result=curl($move_url,$poststr); } $result=(array)json_decode($result); if($result['errmsg']=='ok') { echo " <script type=\"text/javascript\">window.alert('移动成功')</script> <script type=\"text/javascript\"> setTimeout(\"window.location.href='getgroup.php'\",5000); </script> "; } ?>
Das obige ist der detaillierte Inhalt vonEinführung in WeChat-Entwicklungsbenutzergruppen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!