/// <summary> /// 处理视频请求 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnVideoRequest(RequestMessageVideo requestMessage) { var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "您发送了一条视频信息,ID:" + requestMessage.MediaId; #region 材并推送到客户端 Task.Factory.StartNew(async() => { //上传素材 var dir = ServerUtility.ContentRootMapPath("~/App_Data/TempVideo/"); var file = await MediaApi.GetAsync(appId, requestMessage.MediaId, dir); var uploadResult = await MediaApi.UploadTemporaryMediaAsync(appId, UploadMediaFileType.video, file, 50000); await CustomApi.SendVideoAsync(appId, base.OpenId, uploadResult.media_id, "这是您刚才发送的视频", "这是一条视频消息"); }).ContinueWith(async task => { if (task.Exception != null) { WeixinTrace.Log("OnVideoRequest()储存Video过程发生错误:", task.Exception.Message); var msg = string.Format("上传素材出错:{0}\r\n{1}", task.Exception.Message, task.Exception.InnerException != null ? task.Exception.InnerException.Message : null); await CustomApi.SendTextAsync(appId, base.OpenId, msg); } }); #endregion return(responseMessage); }
public async Task CustomSendVideoAsync(string accessTokenOrAppId, string openId, int siteId, int materialId, string mediaId) { if (string.IsNullOrEmpty(mediaId)) { mediaId = await PushMaterialAsync(accessTokenOrAppId, MaterialType.Video, materialId); } var video = await _materialVideoRepository.GetAsync(materialId); await _wxChatRepository.ReplyAdd(new WxChat { SiteId = siteId, OpenId = openId, IsReply = true, MaterialType = MaterialType.Video, MaterialId = materialId, Text = MaterialType.Video.GetDisplayName() }); await CustomApi.SendVideoAsync(accessTokenOrAppId, openId, mediaId, video.Title, video.Description); }