Exemplo n.º 1
0
        /// <summary>
        ///     获取图片、语音、视频文件列表
        /// </summary>
        /// <returns>JSON</returns>
        public JsonResult GetMediaJsonResult(UploadMediaFileType fileType)
        {
            var accessToken = AccessToken;

            switch (fileType)
            {
            case UploadMediaFileType.news:

                break;

            case UploadMediaFileType.image:
                var images = MediaApi.GetOthersMediaList(accessToken, UploadMediaFileType.image, 0, 20);
                return(Json(images, JsonRequestBehavior.AllowGet));

                break;

            case UploadMediaFileType.voice:
                var voices = MediaApi.GetOthersMediaList(accessToken, UploadMediaFileType.voice, 0, 20);
                return(Json(voices, JsonRequestBehavior.AllowGet));

                break;

            case UploadMediaFileType.video:
                var videos = MediaApi.GetOthersMediaList(accessToken, UploadMediaFileType.video, 0, 20);
                return(Json(videos, JsonRequestBehavior.AllowGet));

                break;
            }
            return(null);
        }
        public ActionResult Index(string token, UploadMediaFileType type, int contentLength /*, HttpPostedFileBase postedFile*/)
        {
            var inputStream = Request.InputStream;
            if (contentLength != inputStream.Length)
            {
                return Content("ContentLength不正确,可能接收错误!");
            }

            if (token!="TOKEN")
            {
                return Content("TOKEN不正确!");
            }

            if (type!= UploadMediaFileType.image)
            {
                return Content("UploadMediaFileType不正确!");
            }

            //储存文件,对比是否上传成功
            using (FileStream ms =new FileStream(Server.MapPath("~/TestUploadMediaFile.jpg"), FileMode.OpenOrCreate))
            {
                inputStream.CopyTo(ms,256);
            }

            return Content("{\"type\":\"image\",\"media_id\":\"MEDIA_ID\",\"created_at\":123456789}");
        }
Exemplo n.º 3
0
 /// <summary>
 /// 上传临时媒体文件
 /// </summary>
 /// <param name="accessToken">调用接口凭证</param>
 /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
 /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadTemporaryResultJson Upload(string accessToken, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
 {
     var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = media;
     return Post.PostFileGetJson<UploadTemporaryResultJson>(url, null, fileDictionary, null, null,null, timeOut);
 }
Exemplo n.º 4
0
 /// <summary>
 /// 上传媒体文件
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="type"></param>
 /// <param name="file"></param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     var url = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = file;
     return HttpUtility.Post.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null, timeOut: timeOut);
 }
Exemplo n.º 5
0
        /// <summary>
        /// 上传永久素材-除了图文
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="stream"></param>
        /// <param name="mediaType"></param>
        /// <param name="inArticle"></param>
        /// <param name="fileName"></param>
        /// <param name="contentType"></param>
        /// <returns></returns>
        public async Task <UploadForeverMediaResult> UploadForeverMediaAsync(string access_token, Stream stream,
                                                                             UploadMediaFileType mediaType, string fileName = null, string contentType = null)
        {
            string url = $"https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={access_token}&type={mediaType.ToString()}";

            var fileList = new List <FormData>();

            fileList.Add(new FormData("type", "image"));

            if (stream != null)
            {
                fileList.Add(new FormData
                {
                    Name        = "media",
                    IsFile      = true,
                    FileName    = fileName,
                    Stream      = stream,
                    ContentType = contentType
                });
            }

            var wxRet = await _httpSender.UploadFileAsync <UploadForeverMediaResult>(url, null, fileList);

            return(wxRet);
        }
Exemplo n.º 6
0
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, HttpPostedFile postfile)
        {
            //微信公众号上传媒体文件接口地址
            var urlFormat = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";

            return(Upload <UploadResultJson>(accessToken, urlFormat, postfile, type.ToString()));
        }
Exemplo n.º 7
0
 /// <summary>
 /// 上传媒体文件
 /// </summary>
 /// <param name="accessToken">调用接口凭证</param>
 /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
 /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
 /// <returns></returns>
 public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string media)
 {
     var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = media;
     return HttpUtility.Post.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null);
 }
Exemplo n.º 8
0
        public ActionResult TestUploadMediaFile(string token, UploadMediaFileType type, int contentLength /*, HttpPostedFileBase postedFile*/)
        {
            var inputStream = Request.InputStream;

            if (contentLength != inputStream.Length)
            {
                return(Content("ContentLength不正确,可能接收错误!"));
            }

            if (token != "TOKEN")
            {
                return(Content("TOKEN不正确!"));
            }

            if (type != UploadMediaFileType.image)
            {
                return(Content("UploadMediaFileType不正确!"));
            }

            //储存文件,对比是否上传成功
            using (FileStream ms = new FileStream(Server.MapPath("~/TestUploadMediaFile.jpg"), FileMode.OpenOrCreate))
            {
                inputStream.CopyTo(ms, 256);
            }

            return(Content("{\"type\":\"image\",\"media_id\":\"MEDIA_ID\",\"created_at\":123456789}"));
        }
Exemplo n.º 9
0
 /// <summary>
 /// 上传其他类型永久素材
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="type"></param>
 /// <param name="agentId"></param>
 /// <param name="media"></param>
 /// <param name="timeOut"></param>
 /// <returns></returns>
 public static UploadForeverResultJson AddMaterial(string accessToken, UploadMediaFileType type, int agentId, string media, int timeOut = Config.TIME_OUT)
 {
     var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/add_material?agentid={1}&type={2}&access_token={0}", accessToken.AsUrlData(), agentId, type);
     var fileDictionary = new Dictionary<string, string>();
     fileDictionary["media"] = media;
     return Post.PostFileGetJson<UploadForeverResultJson>(url, null, fileDictionary, null, null, timeOut);
 }
Exemplo n.º 10
0
 public static UpLoadResultJson Upload(string  accessToken,UploadMediaFileType  type,string file)
 {
     var urlFormat = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";
     var fileDicionary = new Dictionary<string, string>();
     fileDicionary["media"] = file;
     return ApiHelper.Upload<UpLoadResultJson>(accessToken, urlFormat, fileDicionary, type.ToString());
 }
Exemplo n.º 11
0
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public UploadTemporaryMediaResult UploadTemporaryMedia(UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {
            var accessToken = _api.GetAccessToken();
            var url         = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());

            return(PostFile <UploadTemporaryMediaResult>(url, file, timeOut));
        }
Exemplo n.º 12
0
        /// <summary>
        /// 上传其他类型永久素材
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="media"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static UploadForeverResultJson AddMaterial(string accessToken, UploadMediaFileType type, int agentId, string media, int timeOut = Config.TIME_OUT)
        {
            var url            = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/add_material?agentid={1}&type={2}&access_token={0}", accessToken.AsUrlData(), agentId, type);
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = media;
            return(Post.PostFileGetJson <UploadForeverResultJson>(url, null, fileDictionary, null, null, null, timeOut));
        }
Exemplo n.º 13
0
        /// <summary>
        /// 上传临时媒体文件
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
        /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryResultJson Upload(string accessToken, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
        {
            var url            = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = media;
            return(Post.PostFileGetJson <UploadTemporaryResultJson>(url, null, fileDictionary, null, null, null, timeOut));
        }
Exemplo n.º 14
0
        /// <summary>
        /// 上传其他类型永久素材
        /// </summary>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="media"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public UploadForeverResultJson AddMaterial(UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
        {
            var agentId     = _api.GetAgentId();
            var accessToken = _api.GetAccessToken();
            var url         = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/add_material?agentid={1}&type={2}&access_token={0}", accessToken, agentId, type);

            return(PostFile <UploadForeverResultJson>(url, media, timeOut));
        }
Exemplo n.º 15
0
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            var url            = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            return(HttpUtility.Post.PostFileGetJson <UploadResultJson>(url, null, fileDictionary, null));
        }
Exemplo n.º 16
0
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">上传文件类型</param>
        /// <param name="file">上传文件物理路径</param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            //微信公众号上传媒体文件接口地址
            var urlFormat      = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            return(ApiHelper.Upload <UploadResultJson>(accessToken, urlFormat, fileDictionary, type.ToString()));
        }
Exemplo n.º 17
0
 public static UploadTemporaryResultJson Upload(string accessTokenOrAppKey, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
 {
     return(ApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var url = string.Format(Config.ApiWorkHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = media;
         return CO2NET.HttpUtility.Post.PostFileGetJson <UploadTemporaryResultJson>(url, null, fileDictionary, null, null, null, false, timeOut: timeOut);
     }, accessTokenOrAppKey));
 }
Exemplo n.º 18
0
        /// <summary>
        /// 媒体文件上传接口
        ///注意事项
        ///1.上传的媒体文件限制:
        ///图片(image) : 1MB,支持JPG格式
        ///语音(voice):1MB,播放长度不超过60s,支持MP4格式
        ///视频(video):10MB,支持MP4格式
        ///缩略图(thumb):64KB,支持JPG格式
        ///2.媒体文件在后台保存时间为3天,即3天后media_id失效
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">上传文件类型</param>
        /// <param name="fileName">上传文件完整路径+文件名</param>
        /// <returns></returns>
        public static UploadMediaFileResult UploadMediaFile(string accessToken, UploadMediaFileType type, string fileName)
        {
            var cookieContainer = new CookieContainer();
            var fileStream = FileHelper.GetFileStream(fileName);

            var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}&filename={2}&filelength={3}",
                accessToken, type.ToString(), Path.GetFileName(fileName), fileStream != null ? fileStream.Length : 0);
            UploadMediaFileResult result = Post.PostGetJson<UploadMediaFileResult>(url, cookieContainer, fileStream);
            return result;
        }
Exemplo n.º 19
0
        /// <summary>
        /// 媒体文件上传接口
        ///注意事项
        ///1.上传的媒体文件限制:
        ///图片(image) : 1MB,支持JPG格式
        ///语音(voice):1MB,播放长度不超过60s,支持MP4格式
        ///视频(video):10MB,支持MP4格式
        ///缩略图(thumb):64KB,支持JPG格式
        ///2.媒体文件在后台保存时间为3天,即3天后media_id失效
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">上传文件类型</param>
        /// <param name="fileName">上传文件完整路径+文件名</param>
        /// <returns></returns>
        public static UploadMediaFileResult UploadMediaFile(string accessToken, UploadMediaFileType type, string fileName)
        {
            var cookieContainer = new CookieContainer();
            var fileStream      = FileHelper.GetFileStream(fileName);

            var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}&filename={2}&filelength={3}",
                                    accessToken, type.ToString(), Path.GetFileName(fileName), fileStream != null ? fileStream.Length : 0);
            UploadMediaFileResult result = Post.PostGetJson <UploadMediaFileResult>(url, cookieContainer, fileStream);

            return(result);
        }
Exemplo n.º 20
0
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                var url = string.Format("https://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
                var fileDictionary = new Dictionary<string, string>();
                fileDictionary["media"] = file;
                return Post.PostFileGetJson<UploadTemporaryMediaResult>(url, null, fileDictionary, null, timeOut: timeOut);

            }, accessTokenOrAppId);
        }
Exemplo n.º 21
0
        /// <summary>
        /// 添加媒體資源
        /// </summary>
        /// <param name="OpenId"></param>
        /// <param name="Media"></param>
        /// <returns></returns>
        public virtual ResultM NewMedia(string OpenId, string MediaID, UploadMediaFileType Type)
        {
            ResultM  result = new ResultM();
            WC_Media model  = new WC_Media()
            {
                ID = MediaID, OpenID = OpenId, Type = Type.GetHashCode(), Date = DateTime.Now
            };

            result.Affected = MediaDA.Add(model);
            return(result);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 新增临时素材(原上传媒体文件)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <param name="timeOut">代理请求超时时间(毫秒)</param>
        /// <returns></returns>
        public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessToken, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
        {




            var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary<string, string>();
            fileDictionary["media"] = file;
            var result = HTTPPost.PostFileGetJson<UploadTemporaryMediaResult>(url, null, fileDictionary, null);
            return result;
        }
Exemplo n.º 23
0
        /// <summary>
        /// 上传永久素材(图片、语音、视频、和缩略图)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson UploadLongMedia(string accessToken, UploadMediaFileType type, string file, string title = "", string introduction = "")
        {
            string urlFormat      = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={0}&type={1}";
            var    fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = file;
            if (type == UploadMediaFileType.video)
            {
                fileDictionary["description"] = new SerializerHelper().GetJsonString(new { title = title, introduction = introduction }); //"{\"title\":\"\", \"introduction\":\"永久素材描述\"}";
            }

            return(ApiHelper.Upload <UploadResultJson>(accessToken, urlFormat, fileDictionary, type.ToString()));
        }
Exemplo n.º 24
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static MediaList_OthersResult GetOthersMediaList(string accessToken, UploadMediaFileType type, int offset,
                                                                int count, int timeOut = Config.TIME_OUT)
        {
            string url  = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken);
            var    date = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            return(CommonJsonSend.Send <MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut));
        }
Exemplo n.º 25
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public MediaList_OthersResult GetOthersMediaList(UploadMediaFileType type, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var    accessToken = _api.GetAccessToken();
            string url         = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken);
            var    date        = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            return(Post <MediaList_OthersResult>(url, date, timeOut));
        }
Exemplo n.º 26
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static BatchGetMaterialResult BatchGetMaterial(string accessToken, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}",
                                    accessToken.AsUrlData());

            var data = new
            {
                type    = type.ToString(),
                agentid = agentId, offset, count
            };

            return(CommonJsonSend.Send <BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut));
        }
Exemplo n.º 27
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <returns></returns>
        public MaterialListResult Batchget_material(UploadMediaFileType type, int offset, int count)
        {
            return(ApiHandler.TryCommonApi(delegate(string accessToken)
            {
                var dict = new Dictionary <string, string>();
                dict.Add("type", type.ToString());
                dict.Add("offset", offset.ToString());
                dict.Add("count", count.ToString());
                HttpContent content = new StringContent(JsonConvert.SerializeObject(dict));
                var result = ApiHandler.PostGetJson <MaterialListResult>(string.Format(ApiConfig.materialbatchget_material, accessToken), content);

                return result;
            }));
        }
Exemplo n.º 28
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static MediaList_OthersResult GetOthersMediaList(string accessToken, UploadMediaFileType type, int offset,
                                                                int count)
        {
            string url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}";

            var date = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            return(ApiHelper.Post <MediaList_OthersResult>(accessToken, url, date));
        }
Exemplo n.º 29
0
        /// <summary>
        /// 企业号上传临时素材
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="fileType"></param>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static WeixinWorkFileUploadDTO UploadFile(int channelId, UploadMediaFileType fileType, string filePath)
        {
            var configDto = WeixinConfigHelper.GetWeixinConfigDTOAsync(channelId).Result;

            var weixinUploadUrl = string.Format("https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", configDto.AccessToken, fileType.ToString());

            using (var fileStream = File.OpenRead(filePath))
            {
                var fileName = Path.GetFileName(filePath);
                var html     = WeixinUploadFile(weixinUploadUrl, fileName, fileStream);

                var result = html.FromJson <WeixinWorkFileUploadDTO>();
                return(result);
            }
        }
Exemplo n.º 30
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public BatchGetMaterialResult BatchGetMaterial(UploadMediaFileType type, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var agentId     = _api.GetAgentId();
            var accessToken = _api.GetAccessToken();
            var url         = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}", accessToken);

            var data = new
            {
                type    = type.ToString(),
                agentid = agentId,
                offset  = offset,
                count   = count,
            };

            return(Post <BatchGetMaterialResult>(url, data, timeOut));
        }
Exemplo n.º 31
0
        /// <summary>
        /// 新增临时素材
        /// </summary>
        /// <param name="type"></param>
        /// <param name="media"></param>
        /// <returns></returns>
        public AddMaterialResult UploadMaterial(UploadMediaFileType type, string media)
        {
            if (!FileUtility.IsLocalFile(media))
            {
                media = ApiHandler.Download(media);
            }
            return(ApiHandler.TryCommonApi(delegate(string accessToken)
            {
                var filedict = new Dictionary <string, string>();
                filedict.Add("media", media);
                var content = ApiHandler.CreateMultipartFormDataContent(filedict);
                var result = ApiHandler.PostGetJson <AddMaterialResult>(string.Format(ApiConfig.mediaUpload, accessToken, type), content);

                return result;
            }));
        }
Exemplo n.º 32
0
        private MediaList_OthersResult GetMediaList(string accessToken, UploadMediaFileType type, int offset,
                                                    int count, int timeOut = 10000)
        {
            string urlFormat = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());
            var    data      = new
            {
                type   = type.ToString(),
                offset = offset,
                count  = count
            };

            using (MemoryStream memoryStream = new MemoryStream())
            {
                byte[] bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data));
                memoryStream.Write(bytes, 0, bytes.Length);
                memoryStream.Seek(0L, SeekOrigin.Begin);
                string returnText = RequestUtility.HttpPost(urlFormat, null, memoryStream, null, null, Encoding.UTF8, null, timeOut);
                return(JsonConvert.DeserializeObject <MediaList_OthersResult>(returnText));
            }
        }
Exemplo n.º 33
0
        public static async Task <MediaList_OthersResult> GetOthersMediaListAsync(string accessTokenOrAppId, UploadMediaFileType type, int offset,
                                                                                  int count, int timeOut = Config.TIME_OUT)
        {
            return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
            {
                string url = string.Format(Config.ApiMpHost + "/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());

                var date = new
                {
                    type = type.ToString(),
                    offset = offset,
                    count = count
                };

                return await CommonJsonSend.SendAsync <MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut).ConfigureAwait(false);
            }, accessTokenOrAppId).ConfigureAwait(false));
        }
Exemplo n.º 34
0
        public static async Task <BatchGetMaterialResult> BatchGetMaterialAsync(string accessTokenOrAppKey, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
            {
                var url = string.Format(Config.ApiWorkHost + "/cgi-bin/material/batchget?access_token={0}",
                                        accessToken.AsUrlData());

                var data = new
                {
                    type = type.ToString(),
                    agentid = agentId,
                    offset = offset,
                    count = count,
                };

                return await Senparc.Weixin.CommonAPIs.CommonJsonSend.SendAsync <BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut);
            }, accessTokenOrAppKey));
        }
Exemplo n.º 35
0
 public static async Task <UploadForeverResultJson> AddMaterialAsync(string accessTokenOrAppKey, UploadMediaFileType type, int agentId, string media, int timeOut = Config.TIME_OUT)
 {
     return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
     {
         var url = string.Format(Config.ApiWorkHost + "/cgi-bin/material/add_material?agentid={1}&type={2}&access_token={0}", accessToken.AsUrlData(), agentId, type);
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = media;
         return await Post.PostFileGetJsonAsync <UploadForeverResultJson>(url, null, fileDictionary, null, null, null, false, timeOut);
     }, accessTokenOrAppKey));
 }
Exemplo n.º 36
0
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            string savePath = HttpContext.Current.Server.MapPath(file);
            string dirPath  = HttpContext.Current.Server.MapPath(file.Substring(0, file.LastIndexOf("/") + 1));

            WebResponse response = null;
            Stream      stream   = null;

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(System.Web.Configuration.WebConfigurationManager.AppSettings["sourceWeb"] + file);
                response = request.GetResponse();
                stream   = response.GetResponseStream();

                byte[] buffer    = new byte[1024];
                Stream outStream = null;
                Stream inStream  = null;
                if (File.Exists(savePath))
                {
                    File.Delete(savePath);
                }

                if (!Directory.Exists(dirPath))
                {
                    DirectoryInfo d = new DirectoryInfo(dirPath);
                    d.Create();
                }
                outStream = System.IO.File.Create(savePath);
                inStream  = response.GetResponseStream();
                int l;
                do
                {
                    l = inStream.Read(buffer, 0, buffer.Length);
                    if (l > 0)
                    {
                        outStream.Write(buffer, 0, l);
                    }
                } while (l > 0);
                if (outStream != null)
                {
                    outStream.Close();
                }
                if (inStream != null)
                {
                    inStream.Close();
                }
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                }
                if (response != null)
                {
                    response.Close();
                }
            }
            var url            = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary <string, string>();

            fileDictionary["media"] = savePath;
            var result = HTTPPost.PostFileGetJson <UploadResultJson>(url, null, fileDictionary, null);

            if (File.Exists(savePath))
            {
                File.Delete(savePath);
            }
            return(result);
        }
Exemplo n.º 37
0
        /// <summary>
        /// 获取素材列表
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="agentId"></param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static BatchGetMaterialResult BatchGetMaterial(string accessToken, UploadMediaFileType type, int agentId, int offset, int count, int timeOut = Config.TIME_OUT)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/material/batchget?access_token={0}",
                accessToken.AsUrlData());

            var data = new
            {
                type = type.ToString(),
                agentid = agentId,
                offset = offset,
                count = count,
            };

            return CommonJsonSend.Send<BatchGetMaterialResult>(null, url, data, CommonJsonSendType.POST, timeOut);
        }
Exemplo n.º 38
0
 /// <summary>
 /// 【异步方法】上传临时媒体文件【QY移植修改】
 /// </summary>
 /// <param name="accessTokenOrAppKey">调用接口凭证(AccessToken)或AppKey(根据AccessTokenContainer.BuildingKey(corpId, corpSecret)方法获得)</param>
 /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
 /// <param name="media">form-data中媒体文件标识,有filename、filelength、content-type等信息</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static async Task <UploadTemporaryResultJson> UploadAsync(string accessTokenOrAppKey, UploadMediaFileType type, string media, int timeOut = Config.TIME_OUT)
 {
     return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
     {
         var url = string.Format(Config.ApiWorkHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = media;
         return await Post.PostFileGetJsonAsync <UploadTemporaryResultJson>(CommonDI.CommonSP, url, null, fileDictionary, null, null, null, false, null, timeOut).ConfigureAwait(false);
     }, accessTokenOrAppKey).ConfigureAwait(false));
 }
Exemplo n.º 39
0
 /// <summary>
 /// 新增临时素材(原上传媒体文件)
 /// </summary>
 /// <param name="accessTokenOrAppId"></param>
 /// <param name="type"></param>
 /// <param name="file"></param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static UploadTemporaryMediaResult UploadTemporaryMedia(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     return(ApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = file;
         return HttpUtility.Post.PostFileGetJson <UploadTemporaryMediaResult>(url, null, fileDictionary, null, timeOut: timeOut);
     }, accessTokenOrAppId));
 }
Exemplo n.º 40
0
        /// <summary>
        /// 获取图片、视频、语音素材列表
        /// </summary>
        /// <param name="accessTokenOrAppId"></param>
        /// <param name="type">素材的类型,图片(image)、视频(video)、语音 (voice)</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <param name="timeOut"></param>
        /// <returns></returns>
        public static MediaList_OthersResult GetOthersMediaList(string accessTokenOrAppId, UploadMediaFileType type, int offset,
            int count, int timeOut = Config.TIME_OUT)
        {
            return ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                string url = string.Format("https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={0}", accessToken.AsUrlData());

                var date = new
                {
                    type = type.ToString(),
                    offset = offset,
                    count = count
                };

                return CommonJsonSend.Send<MediaList_OthersResult>(null, url, date, CommonJsonSendType.POST, timeOut);

            }, accessTokenOrAppId);
        }
Exemplo n.º 41
0
        /// <summary>
        /// 上传媒体文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {

            string savePath = HttpContext.Current.Server.MapPath(file);
            string dirPath = HttpContext.Current.Server.MapPath(file.Substring(0, file.LastIndexOf("/") + 1));

            WebResponse response = null;
            Stream stream = null;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(System.Web.Configuration.WebConfigurationManager.AppSettings["sourceWeb"] + file);
                response = request.GetResponse();
                stream = response.GetResponseStream();

                byte[] buffer = new byte[1024];
                Stream outStream = null;
                Stream inStream = null;
                if (File.Exists(savePath)) File.Delete(savePath);

                if (!Directory.Exists(dirPath))
                {
                    DirectoryInfo d = new DirectoryInfo(dirPath);
                    d.Create();
                }
                outStream = System.IO.File.Create(savePath);
                inStream = response.GetResponseStream();
                int l;
                do
                {
                    l = inStream.Read(buffer, 0, buffer.Length);
                    if (l > 0) outStream.Write(buffer, 0, l);
                } while (l > 0);
                if (outStream != null) outStream.Close();
                if (inStream != null) inStream.Close();
            }
            finally
            {
                if (stream != null) stream.Close();
                if (response != null) response.Close();
            }
            var url = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary<string, string>();
            fileDictionary["media"] = savePath;
            var result = HTTPPost.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null);
            if (File.Exists(savePath))
            {
                File.Delete(savePath);
            }
            return result;
        }
Exemplo n.º 42
0
 public static async Task <UploadTemporaryMediaResult> UploadTemporaryMediaAsync(string accessTokenOrAppId, UploadMediaFileType type, string file, int timeOut = Config.TIME_OUT)
 {
     return(await ApiHandlerWapper.TryCommonApiAsync(async accessToken =>
     {
         var url = string.Format(Config.ApiMpHost + "/cgi-bin/media/upload?access_token={0}&type={1}", accessToken.AsUrlData(), type.ToString().AsUrlData());
         var fileDictionary = new Dictionary <string, string>();
         fileDictionary["media"] = file;
         return await CO2NET.HttpUtility.Post.PostFileGetJsonAsync <UploadTemporaryMediaResult>(url, null, fileDictionary, null, null, null, false, timeOut: timeOut).ConfigureAwait(false);
     }, accessTokenOrAppId).ConfigureAwait(false));
 }