热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信开发之用户组的介绍

这篇文章详解微信开发之用户组的介绍
1:创建用户组

微信跟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文件,后面的组的相关操作都基于这些函数

$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链接提交过去就可以了

相关的代码

  






      
         

新建分组

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从腾讯上获取的数据是什么样的

上图我们创建了一个表,第一行是一个创建新组的功能,在以下的行中,我们能够看到组编号,组名,以及组内人数。那么这个是如何做到的呢?很简单,当我们已经获取到返回回来的json数据之后,我们对json进行数据包装,把json做成数组形式。那么如何实现数据包装呢?也很简单,我们不断的调用解析函数,将它最终变为数组的形式,然后遍历这个数组就行了。

展示源代码:getGroup.php

 
     

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

"; echo ""; echo ""; for($i=0;$i"; foreach ($resultG[$i] as $key=>$value) { if($key=='id') { echo ""; } else { echo ""; } } echo ""; } echo "
创建一个新组
编号组名人数[$value]删除修改 $value
"; ?>



3:我们如何修改分组名

修改分组名

接口调用请求说明

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";
 foreach ($resultG[$i] as $key=>$value)
   { 
  if($key=='id')
  {
  echo "[$value]删除修改";
  }
  else 
  {
        echo " $value";
  }
}
echo "";
}

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

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

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

代码如下:

    
      

更新组名

如果执行成功,那么会进行弹出提醒框,等待五秒后自动跳转回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页面并进行相关的删除操作即可

代码显示:

    array("id"=>$num)));
//如果curl函数执行成功,那么会返回一个状态值
if($result=curl($delete_url,$data))
{
 echo "";
 //设置跳转回主页
  echo "";
}
else
{echo "";}
}
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过去.在批量分组之前,我们还要知道一件事,如何获取用户的相关信息,这个信息指的是用户微信上设置的性别,省份,国家,语言,所属组等等的相关信息,同样,微信提供了获取用户信息的接口,参照上述解决方法就可以获取到用户的相关的信息

以下是获取到的用户表

通过第一列的选择之后,在选择要分的组,点击移动就可以将用户移动到想要的组里面,下图是移动后的展示

所属组编号发生了变化

源代码展示

          ";
   $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 "
"; // global $userinfo; //$userinfo=$info; //var_dump($userinfo); foreach($info as $key=>$value) { //对表格进行相关的修饰,进行相关的判断 switch($key) { //如果是id,那么做成一个复选框 case "openid": echo ""; case "subscribe"://忽略相关的描述,不对这个字段生成列 break; //如果是性别,性别值1代表男,0代表女,2代表并未填写 case "sex": if($value==1) { echo ""; } else if($value==0) { echo ""; } else { echo ""; } break; //如果是头像链接,那么生成一个50*50像素的图片 case "headimgurl"; echo ""; break; //以下是默认列 case "nickname": case "language": case "city": case "province": case "country": case "subscribe_time": echo ""; break; //如果remark的值为空,那么备注名是空值 case "remark": if(empty($value)) { echo ""; } else { echo ""; } break; case "groupid": echo""; break; } } echo ""; } } ?>
选择移动 昵称 性别 语言 所在城市 省份 国家 头像 加入时间 备注名 所属组 "; $count=count($resultG); foreach($resultG as $key)//遍历包装好的json数据,已经转成了多维数组 { echo ""; $count--; //获取组ID } echo ""; echo ""; ?> 暂未填写 $value暂无$value$value


move.php的代码

以上就是微信开发之用户组的介绍的详细内容,更多请关注php中文网其它相关文章!


推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
author-avatar
虚假爱情2502873563_918
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有