微博粉丝服务---“公众号”开发

微博粉丝服务是参考微信公众号的形式进行的新型交流平台,但是相关资源却比较少,而微信端的后台开发资源较多,因此写了这一篇博客,为自己以后,以及需要的人提供有效的参考。

1.创建粉丝应用

微博“公众号”与微信公众号不同,微博的公众号服务是配合一个个微博号使用的,因此无需申请其他的东西,只需要一个微博号即可,然后在微博粉丝服务应官方开放平台---创建即可,这个部分需要填写大量的个人信息,请认真填写,无需上线即可使用(这一点我也不知道为啥,测试的结果一切正常)

如图即可:


2.创建好粉丝应用后,进入微博的个人页面,开发者中心,选择成为开发者,在这一步,需要完成最重要的URL验证工作,即URL地址的填写,咱们服务端的Servlet验证,JSP,ASP,PHP都可,创建Servlet,按照官方API的介绍返回相应结果即可,值得一提的是:微信有明文和密文模式,而微博暂时没有发现,因此只需要返回给定的一个值即可,Java代码如下:


注意:URL地址应该填写到你的服务端网页的具体的Servlet,另外网址必须可以实现80端口和外网访问

eg:URL:http://h7rc43.natappfree.cc/WeiBoJson/TokenServlet

3.后台代码的编写:

微博和微信相同,都是通过一个dopost方法获取数据,和返回数据,因此就有数据格式的问题

微博主要分为两种---JSON和XML

-----XML格式类型:微博是支持完全兼容微信的,因此可以把微信公众号项目拿来用,调用官方接口:

https://api.weibo.com/2/eps/push/set_format.json?access_token=2.002KHbJHEbzWRC9b08df5b06lut_QD&format=xml

即获取微博开发者的access_token,在末尾选择兼容xml,配置好之后,即可把微信项目直接拿来用

注意:access_token的获取需要进行授权,即在微博开发者中心填写一些信息即可,可以自行搜索


----JSON格式类型:

利用JSON格式的话,推荐阿里的fastjson第三方包,用来解析json数据,有意想不到的效果。

        System.out.println("请求进入");
        //缓冲流获取request内容
        BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));  
        String line = null;  
        StringBuilder sb = new StringBuilder();  
        while ((line = br.readLine()) != null) {  
            sb.append(line);  
        }  
        //将json字符串转换为json对象  
        JSONObject json = JSON.parseObject(sb.toString());
        System.out.println(json);

通过缓冲流的相关操作,即可获取到用户发来的JSON数据

同样的,服务端发出去的数据也是JSON格式,只是需要注意官方API的要求:


官方API网址:点击打开链接

再利用fastjson,构造一个json数据,返回即可,代码如下:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 将请求、响应的编码均设置为UTF-8(防止中文乱码)
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8"); 
        System.out.println("请求进入");
        //缓冲流获取request内容
        BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));  
        String line = null;  
        StringBuilder sb = new StringBuilder();  
        while ((line = br.readLine()) != null) {  
            sb.append(line);  
        }  
        //将json字符串转换为json对象  
        JSONObject json = JSON.parseObject(sb.toString());
        System.out.println(json);
        //引用图灵api
        RobotMessageGet ro = new RobotMessageGet();
        String answer = ro.getString(json.getString("text"));
        //构建回data的内容
        String mytext = "{\"text\":"+ "\"" + answer +"\"}";
        mytext = URLEncoder.encode(mytext,"UTF-8");
        //获取上面的发送者和接收者id
        String receiver = json.getString("receiver_id");
        String sender = json.getString("sender_id");
        //构建回复消息的json数据
        StringBuffer post = new StringBuffer("{\"result\":true,\"sender_id\":" + receiver + ",\"receiver_id\":" + sender + ",\"type\":\"text\",\"data\":" + "\"" + mytext +"\"}");
        System.out.println(post.toString());
        //把json数据转化为json对象
        JSONObject po = JSON.parseObject(post.toString());        
        response.getWriter().println(po);
    }

其中我为了内容不单调,运用了图灵api,对回复内容进行处理。

截图如下:


基本的内容就是这样,再深入的研究请多看看官方API,over~

猜你喜欢

转载自blog.csdn.net/weixin_40834464/article/details/80523870