微信公众平台用户标签开发(1)创建标签

2016年09月02日 11:45 | 565次浏览 | 分类: 微信用户管理

首先我们看下微信公众平台官方文档对于开发微信关注用户标签的说明:开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建、查询、修改、删除等操作,也可以对用户进行打标签、取消标签等操作。

1. 创建标签

一个公众号,最多可以创建100个标签。当然你也可以登录微信公众平台管理中心,用户管理->新建标签,直接在平台中心手动编辑新建,我们这里主要介绍开发者如何通过程序调用微信接口创建微信用户标签。

接口调用请求说明

http请求方式:POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
POST数据格式:JSON
POST数据例子:
{
  "tag" : {
    "name" : "广东"//标签名
  }
}

参数说明

好了,我们已经了解了关于微信标签的接口以及调用参数,返回参数,以及参数说明等,接下来我们介绍java调用微信创建标签接口直接创建标签。

2. 创建标签java代码示例

1,获取access_token方法

/***V型知识库 www.vxzsk.com
     * 获取token
     * @param appid 应用id
     * @param appSecret 应用秘钥
     * @return
     */
    public static String getToken(String appid,String appSecret){
    	 String url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+appSecret+"";
         String backData=TestMenu.sendGet(url, "utf-8", 10000);
         JSONObject jsonObject = JSONObject.fromObject(backData);
 		String access_token=jsonObject.getString("access_token");//调用接口凭证
 		return access_token;
    }

说明:appid为应用id,appSecret为应用秘钥,此两个参数用户登录微信公众平台管理中心查询可获知。关于JSONObject,读者自行下载json-lib-2.2.3-jdk13.jar。

TestMenu.sendGet 方法代码

/***
    * 模拟get请求 V型知识库 www.vxzsk.com
    * @param url
    * @param charset
    * @param timeout
    * @return
    */
    public static String sendGet(String url, String charset, int timeout)
     {
       String result = "";
       try
       {
         URL u = new URL(url);
         try
         {
           URLConnection conn = u.openConnection();
           conn.connect();
           conn.setConnectTimeout(timeout);
           BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset));
           String line="";
           while ((line = in.readLine()) != null)
           {
            
             result = result + line;
           }
           in.close();
         } catch (IOException e) {
           return result;
         }
       }
       catch (MalformedURLException e)
       {
         return result;
       }
      
       return result;
     }

2,创建微信用户标签

//2,创建用户标签
        String create_tags_url="https://api.weixin.qq.com/cgi-bin/tags/create?access_token=";//创建标签接口
		String params = "{ \"tag\" : { \"name\" : \"陕西\"}}";
		String jsonData = TestMenu.sendPost(create_tags_url+access_token, params);
		System.out.println("请求接口返回"+jsonData);

我在这里创建了一个标签名字叫"陕西"的标签

TestMenu.sendPost方法

/***
	 * Post 请求*
	 */
	public static String sendPost(String requrl,String param){
		 URL url;
		  String sTotalString="";  
		try {
			url = new URL(requrl);
			 URLConnection connection = url.openConnection(); 
			 
			 connection.setRequestProperty("accept", "*/*");
			 connection.setRequestProperty("connection", "Keep-Alive");
			 connection.setRequestProperty("Content-Type", "text/xml");
			// connection.setRequestProperty("Content-Length", body.getBytes().length+"");
			 connection.setRequestProperty("User-Agent",
                   "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
			 
			 
		        connection.setDoOutput(true);  
		        OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "utf-8");  
		        out.write(param); // 向页面传递数据。post的关键所在!  
		        out.flush();  
		        out.close();  
		        // 一旦发送成功,用以下方法就可以得到服务器的回应:  
		        String sCurrentLine;  
		      
		        sCurrentLine = "";  
		        sTotalString = "";  
		        InputStream l_urlStream;  
		        l_urlStream = connection.getInputStream();  
		        // 传说中的三层包装阿!  
		        BufferedReader l_reader = new BufferedReader(new InputStreamReader(  
		                l_urlStream));  
		        while ((sCurrentLine = l_reader.readLine()) != null) {  
		            sTotalString += sCurrentLine + "\r\n";  
		  
		        }  
		        
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
	       
	        System.out.println(sTotalString);  
	        return sTotalString;
	 }

2. 完整的java类代码

/**
 * V型知识库 www.vxzsk.com
 * **/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import net.sf.json.JSONObject;
public class TestMenu {
	
	
	/***
	 * Post 请求*
	 */
	public static String sendPost(String requrl,String param){
		 URL url;
		  String sTotalString="";  
		try {
			url = new URL(requrl);
			 URLConnection connection = url.openConnection(); 
			 
			 connection.setRequestProperty("accept", "*/*");
			 connection.setRequestProperty("connection", "Keep-Alive");
			 connection.setRequestProperty("Content-Type", "text/xml");
			// connection.setRequestProperty("Content-Length", body.getBytes().length+"");
			 connection.setRequestProperty("User-Agent",
                   "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
			 
			 
		        connection.setDoOutput(true);  
		        OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "utf-8");  
		        out.write(param); // 向页面传递数据。post的关键所在!  
		        out.flush();  
		        out.close();  
		        // 一旦发送成功,用以下方法就可以得到服务器的回应:  
		        String sCurrentLine;  
		      
		        sCurrentLine = "";  
		        sTotalString = "";  
		        InputStream l_urlStream;  
		        l_urlStream = connection.getInputStream();  
		        // 传说中的三层包装阿!  
		        BufferedReader l_reader = new BufferedReader(new InputStreamReader(  
		                l_urlStream));  
		        while ((sCurrentLine = l_reader.readLine()) != null) {  
		            sTotalString += sCurrentLine + "\r\n";  
		  
		        }  
		        
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
	       
	        System.out.println(sTotalString);  
	        return sTotalString;
	 }
	
	/***
    * 模拟get请求
    * @param url
    * @param charset
    * @param timeout
    * @return
    */
    public static String sendGet(String url, String charset, int timeout)
     {
       String result = "";
       try
       {
         URL u = new URL(url);
         try
         {
           URLConnection conn = u.openConnection();
           conn.connect();
           conn.setConnectTimeout(timeout);
           BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset));
           String line="";
           while ((line = in.readLine()) != null)
           {
            
             result = result + line;
           }
           in.close();
         } catch (IOException e) {
           return result;
         }
       }
       catch (MalformedURLException e)
       {
         return result;
       }
      
       return result;
     }
	
    /***
     * 获取token
     * @param appid
     * @param appSecret
     * @return
     */
    public static String getToken(String appid,String appSecret){
    	 String url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+appSecret+"";
         String backData=TestMenu.sendGet(url, "utf-8", 10000);
         JSONObject jsonObject = JSONObject.fromObject(backData);
 		String access_token=jsonObject.getString("access_token");//调用接口凭证
 		return access_token;
    }
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String appId = "";//应用id
		String appSecret = "";//应用秘钥
		//1,获取access_token
		String access_token = TestMenu.getToken(appId, appSecret);
		//2,创建用户标签
        String create_tags_url="https://api.weixin.qq.com/cgi-bin/tags/create?access_token=";//创建标签接口
		String params = "{ \"tag\" : { \"name\" : \"陕西\"}}";
		String jsonData = TestMenu.sendPost(create_tags_url+access_token, params);
		System.out.println("请求接口返回"+jsonData);

	}

}

说明:此类复制到工程里执行main方法即可,在执行之前必须把微信的应用id和应用秘钥填写为自己公众平台的参数值。

效果如下:

执行成功之后,我们登录自己的微信公众平台管理中心,点击管理->用户管理->左侧界面中已经显示我们刚才创建的微信标签"陕西"。


感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程


上一篇:
^