[TOC] ####接口权限 ![不支持](https://box.kancloud.cn/13715f31176b79477b1b114f976c52a4_74x74.jpg =30x30) 订阅号,![支持](https://box.kancloud.cn/210679aec05376f88eda9c088a806868_72x72.jpg =30x30) 认证订阅号,![不支持](https://box.kancloud.cn/13715f31176b79477b1b114f976c52a4_74x74.jpg =30x30) 服务号,![支持](https://box.kancloud.cn/210679aec05376f88eda9c088a806868_72x72.jpg =30x30) 认证服务号 #### 标签管理 开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建、查询、修改、删除等操作,也可以对用户进行打标签、取消标签等操作。 #####获取所有标签 >[info] fansTagFetchAll() ``` $account_api = WeAccount::create(); $result = $account_api->fansTagFetchAll(); if (is_error($result)) { message('获取标签失败'); } /**结果如下 array( 'tags' => array( 0 => array('id' => 1, 'name' => '微擎1', 'count' => '标签下的粉丝数'), 1 => array('id' => 2, 'name' => '微擎2', 'count' => '标签下的粉丝数'), ), ); **/ //入库或是其它代码 ``` #####新建粉丝标签 >[info] fansTagAdd($tagname) * $tagname 标签名称 ``` $account_api = WeAccount::create(); $result = $account_api->fansTagAdd('测试标签'); if (is_error($result)) { message('添加标签失败'); } $tagid = $result['tag']['id']; //标签ID //入库或是其它代码 ``` #####编辑标签 >[info] fansTagEdit($tagid, $tagname) * $tagid 标签id,添加成功后返回的id * $tagname 标签名称 ``` $account_api = WeAccount::create(); $result = $account_api->fansTagEdit('1', '测试标签1'); if (is_error($result)) { message('修改标签失败'); } //入库或是其它代码 ``` ##### 删除标签 >[info] fansTagDelete($tagid) * $tagid 标签id,添加成功后返回的id ``` $account_api = WeAccount::create(); $result = $account_api->fansTagDelete('1'); if (is_error($result)) { message('删除标签失败'); } //入库或是其它代码 ``` #### 粉丝标签管理 ##### 获取粉丝拥有的标签 >[info] fansTagFetchOwnTags($openid) * $openid 粉丝opendid ``` $account_api = WeAccount::create(); $fanstag = $account_api->fansTagFetchOwnTags('fromuser'); if (is_error($fanstag)) { message('获取粉丝标签失败'); } /** $fanstag 结构如下: array( 'tagid_list' = array('1', '2', '标签ID3', '标签ID4') ) **/ //入库或是其它代码 ``` ##### 设置粉丝标签 >[info] fansTagTagging($openid, $tagids) 此函数会直接覆盖粉丝当前拥有的标签。 * $openid 粉丝opendid * $tagids 标签id,最多为三个,结构为array(1, 2, 3) ``` $account_api = WeAccount::create(); $result = $account_api->fansTagTagging('fromuser', array(1, 2)); if (is_error($result)) { message('设置粉丝标签失败'); } //入库或是其它代码 ``` >[warning] 这里需要特别注意的是,批量设置粉丝标签时,每个粉丝最多只能拥有三个标签,如果粉丝拥有一个标签时,要为其设置三个标签,需要先把其拥有的标签先删除掉。 ##### 批量设置标签 >[info] fansTagBatchTagging($openid_list, $tagid) * $openid_list 粉丝opendid列表,结构为array('openid1', 'openid2') * $tagid 标签id ``` $account_api = WeAccount::create(); $result = $account_api->fansTagBatchTagging(array('fromuser', 'fromuser1'), 1); if (is_error($result)) { message('设置粉丝标签失败'); } //入库或是其它代码 ``` ##### 批量取消标签 >[info] fansTagBatchUntagging($openid_list, $tagid) * $openid_list 粉丝opendid列表,结构为array('openid1', 'openid2') * $tagid 标签id ``` $account_api = WeAccount::create(); $result = $account_api->fansTagBatchUntagging(array('fromuser', 'fromuser1'), 1); if (is_error($result)) { message('取消粉丝标签失败'); } //入库或是其它代码 ``` #### 标签与分组的对应关系 由于微信最开始是设置粉丝分组(只支持一个分组),后来改为粉丝标签。标签的数据是兼容分组数据的,大家可以理解为之前的分组是粉丝的一个标签。 微擎也根据相应的变化做了相关函数的调整,具体对应的差别如下: |旧函数名|新函数名|说明| | -- | -- | -- | |addFansGroup|fansTagAdd|新增一个粉比例标签| |editFansGroupname|fansTagEdit($tagid, $tagname)|编辑标签名称| |delFansGroup|fansTagDelete($tagid)|删除一个标签| |fetchFansGroups|fansTagFetchAll|获取全部粉丝标签| |fetchFansGroupid|fansTagFetchOwnTags($openid)|获取某个粉丝的全部标签| |updateFansGroupid|fansTagTagging($openid, $tags)|给单个粉丝打标签,$tags参数结构为 array('tag1', 'tag2', 'tag3')| | |fansTagBatchTagging($openid_list, $tagid)|批量为粉丝打标签| | |fansTagBatchUntagging($openid_list, $tagid)|批量取消粉丝标签|