/// <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); }
private void SendSpreadPoster(string openid) { if (_user == null) { return; } AsyncHelper.RunSync(async() => { _accessToken = await _wechatCommonManager.GetAccessTokenAsync(_tenant.Id); try { SpreadPosterManager spreadPosterManager = IocManager.Instance.Resolve <SpreadPosterManager>(); string path = await spreadPosterManager.GetDefaultSpreadPosterAsync(_user.ToUserIdentifier()); string serverPath = HttpContext.Current.Server.MapPath(path); UploadTemporaryMediaResult uploadTemporaryMediaResult = await MediaApi.UploadTemporaryMediaAsync( _accessToken, UploadMediaFileType.image, serverPath); _customerServiceMessageHelper.SendImage(_accessToken, openid, uploadTemporaryMediaResult.media_id); } catch (Exception exception) { _customerServiceMessageHelper.SendText(_accessToken, openid, exception.Message); } }); }