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

Einführung in WeChat-Entwicklungsbenutzergruppen

高洛峰
Freigeben: 2017-03-22 16:26:05
Original
1868 Leute haben es durchsucht

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",&#39;d05c2fc161d71c8317331a39044a7d93&#39;,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'];
		
?>
Nach dem Login kopieren

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 &#39;<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[&#39;tag&#39;];//获取组名
					$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>
Nach dem Login kopieren

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
        }
    ]
}
Nach dem Login kopieren

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/>
Nach dem Login kopieren

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>";
}
Nach dem Login kopieren

代码中,我们对返回的数组进行遍历,如果发现key值是id,那么我们将值获取过来并且加入到链接尾部,注意get方式的写法

echo "[$value]删除修改";

跳转到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();
}
?>
Nach dem Login kopieren

如果执行成功,那么会进行弹出提醒框,等待五秒后自动跳转回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();
?>
Nach dem Login kopieren

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>
 ";
}
?>
Nach dem Login kopieren


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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage