Heim  >  Artikel  >  WeChat-Applet  >  Einführung in WeChat-Entwicklungsbenutzergruppen

Einführung in WeChat-Entwicklungsbenutzergruppen

高洛峰
高洛峰Original
2017-03-22 16:26:051781Durchsuche

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

ede26bad2add626a19c2211f61ee56bf$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

  b33931ffcad76ab5a6e272ab5c0c4054'; 
?>
ffd43448117c1013fbeeed3f564491ad
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
b2386ffb911b14667cb8f0f91ea547a7无标题文档6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
      6a7d1053252a905467ae2da05defc569
         e388a4556c0f65e1904146cc1a846bee新建分组94b3e26ee717c64999d7867364b1b4a3
         46595d76856168922793755f4e0edd48
         ba043d2d5235e94318351a1bc38d7ce9
         
      f5a47148e367a6035fd7a2faa965022e
      b1e78631ba3e818b19851d4bea9b7adfalert('执行成功,三秒之后将自动跳回主页')2cacc6d41bbb37262a98f745aa00fbf0";
		 //设置跳转回主页
		  echo "2289668670aff8cbbd03c2c8405cc451setTimeout(window.navigate(\"getgroup.php\"),3000)2cacc6d41bbb37262a98f745aa00fbf0";
		}
	else
	{echo "2289668670aff8cbbd03c2c8405cc451alert('执行失败')2cacc6d41bbb37262a98f745aa00fbf0";}
	
					}
					create_group();
			  }
			  
	  ?>
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

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==&#39;id&#39;)
  {
  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==&#39;id&#39;)
  {
  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 "64cf4fb7bf475c6c58de2127e728f060[$value]c82c04bec5187d5fc05c0bfa31a7aa07删除5db79b134e9f6b82c0b36e0489ee08ed6b75e4ab755d336ebe31e1a37d05c544修改5db79b134e9f6b82c0b36e0489ee08edb90dd5946f0946207856a8a37f441edf";

跳转到modify.php页面后,我们进行相关的处理,在该页面上,我们仍然有一个HTML输入框

代码如下:

    <form action="#" method="post">
      <p>更新组名</p>
      <input type="hidden" name="num" value="<?php echo $_GET[&#39;num&#39;]?>">
      <input  type="text"id="modify" name="name">
      <input type="submit" value="修改" name="-1">
  </form>
<?php 
    //此程序用于修改标签组
function modify()
{     $num=$_POST[&#39;num&#39;];
      $name=$_POST[&#39;name&#39;];
  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[&#39;errmsg&#39;];
  if($result==&#39;ok&#39;)
  {
     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(&#39;wrong&#39;);
      </script>";
}
}
if(isset($_POST[&#39;-1&#39;]))
{
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[&#39;num&#39;];//接收来自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(&#39;执行成功,三秒之后将自动跳回主页&#39;)</script>";
 //设置跳转回主页
  echo "<script type=\"text/javascript\">setTimeout(window.history.back(-1),8000)</script>";
}
else
{echo "<script type=\"text/javascript\">alert(&#39;执行失败&#39;)</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[&#39;data&#39;] as $key)
   {
      //$list[&#39;data&#39;]是已经包装好的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[&#39;openid&#39;];//获取选中的openid
 $groupid=$_POST[&#39;group&#39;];//获取组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[&#39;errmsg&#39;]==&#39;ok&#39;)
{
 echo "
   <script type=\"text/javascript\">window.alert(&#39;移动成功&#39;)</script>
   <script type=\"text/javascript\">
    setTimeout(\"window.location.href=&#39;getgroup.php&#39;\",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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn