微信公众号开发笔记(十)发送视频消息

发送视频消息

上传一段小视频,获取media_id,上传的视频不大于10MB,支持MP4格式, 当用户发送视频格式时,公众号就回复视频格式

1.获取media_id
package com.qj.servlet;

import com.alibaba.fastjson.JSONObject;
import com.qj.util.UploadMediaApiUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;

/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/
@WebServlet(name = "UploadMediaServlet")
public class UploadMediaServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        UploadMediaApiUtil uploadMediaApiUtil = new UploadMediaApiUtil();
        String appId = "wx8948d77934e934e0";
        String appSecret = "d4babf8b4bc341167b283e21e129e073";
        String accessToken = uploadMediaApiUtil.getAccessToken(appId,appSecret);

        String filePath = "D:\\1.mp4";
        File file = new File(filePath);
        String type = "VIDEO";
        JSONObject jsonObject = uploadMediaApiUtil.uploadMedia(file,accessToken,type);
        System.out.println(jsonObject.toString());


    }

}

2.启动项目,访问http://localhost:8080/UploadMediaServlet,进行上传视频

微信服务器会返回一个media_id:

{"media_id":"h_Z1TXk5iektoi2BdlG-sRZg_6nH750IhwUheGVBjpJn8_gEqJOhsWRWnRsbZbSh","created_at":1569496025,"type":"video"}
代码实现
1.在Message.util工具类中新增 buildVideoMessage方法
/**
     * 回复视频消息
     * @param map
     * @return
     */
    private static String buildVideoMessage(Map<String, String> map) {
        String fromUserName = map.get("FromUserName");
        String toUserName = map.get("ToUserName");
        String title = "客官发过来的视频哟~~";
        String description = "客官您呐,现在肯定很开心,对不啦 嘻嘻?";
        /*返回用户发过来的视频*/
        //String media_id = map.get("MediaId");
        String media_id = "h_Z1TXk5iektoi2BdlG-sRZg_6nH750IhwUheGVBjpJn8_gEqJOhsWRWnRsbZbSh";
        return String.format(
                "<xml>" +
                "<ToUserName><![CDATA[%s]]></ToUserName>" +
                "<FromUserName><![CDATA[%s]]></FromUserName>" +
                "<CreateTime>%s</CreateTime>" +
                "<MsgType><![CDATA[video]]></MsgType>" +
                "<Video>" +
                "   <MediaId><![CDATA[%s]]></MediaId>" +
                "   <Title><![CDATA[%s]]></Title>" +
                "   <Description><![CDATA[%s]]></Description>" +
                "</Video>" +
                "</xml>",
                fromUserName,toUserName, getUtcTime(),media_id,title,description
        );
    }

2. 在 buildXml 构建消息的方法中新增代码
  //返回用户发过来的视频
        if(msgType.toUpperCase().equals("VIDEO")){
            String fromUserName = map.get("FromUserName");
            String toUserName = map.get("ToUserName");
            String title = "客官发过来的视频哟~~";
            String description = "客官您呐,现在肯定很开心,对不啦 嘻嘻?";
            /*返回用户发过来的视频*/
           //String media_id = map.get("MediaId");
            String media_id = "h_Z1TXk5iektoi2BdlG-sRZg_6nH750IhwUheGVBjpJn8_gEqJOhsWRWnRsbZbSh";
            return String.format(
                    "<xml>" +
                            "<ToUserName><![CDATA[%s]]></ToUserName>" +
                            "<FromUserName><![CDATA[%s]]></FromUserName>" +
                            "<CreateTime>%s</CreateTime>" +
                            "<MsgType><![CDATA[video]]></MsgType>" +
                            "<Video>" +
                            "   <MediaId><![CDATA[%s]]></MediaId>" +
                            "   <Title><![CDATA[%s]]></Title>" +
                            "   <Description><![CDATA[%s]]></Description>" +
                            "</Video>" +
                            "</xml>",
                    fromUserName,toUserName, getUtcTime(),media_id,title,description
            );
        }
3.启动项目,测试效果,用户发送视频,客户端会返回一段视频

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猫A建仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值