/// <summary> /// 获取微信文章 /// </summary> /// <param name="mediaId"></param> /// <returns></returns> public async Task <GetNewsResultJson> GetForeverNewsAsync(string appId, string mediaId) { var wxRet = await MediaApi.GetForeverNewsAsync(appId, mediaId); return(wxRet); }
public async Task <string> PushMaterialAsync(string accessTokenOrAppId, MaterialType materialType, int materialId) { string mediaId = null; if (materialType == MaterialType.Message) { var message = await _materialMessageRepository.GetAsync(materialId); var newsList = new List <NewsModel>(); foreach (var item in message.Items) { var news = new NewsModel { thumb_media_id = item.ThumbMediaId, author = item.Author, title = item.Title, content_source_url = item.ContentSourceUrl, content = item.Content, digest = item.Digest, show_cover_pic = item.ShowCoverPic ? "1" : "0", thumb_url = item.ThumbUrl, need_open_comment = item.CommentType == CommentType.Block ? 0 : 1, only_fans_can_comment = item.CommentType == CommentType.OnlyFans ? 1 : 0 }; newsList.Add(news); } mediaId = message.MediaId; if (string.IsNullOrEmpty(mediaId)) { var result = await MediaApi.UploadNewsAsync(accessTokenOrAppId, 10000, newsList.ToArray()); mediaId = result.media_id; await _materialMessageRepository.UpdateMediaIdAsync(materialId, mediaId); } else { var index = 0; foreach (var news in newsList) { await MediaApi.UpdateForeverNewsAsync(accessTokenOrAppId, message.MediaId, index ++, news); } } // sync article url var media = await MediaApi.GetForeverNewsAsync(accessTokenOrAppId, mediaId); for (var i = 0; i < message.Items.Count; i++) { var item = media.news_item[i]; await _materialArticleRepository.UpdateUrlAsync(message.Items[i].MaterialId, item.url); } } else if (materialType == MaterialType.Image) { var image = await _materialImageRepository.GetAsync(materialId); mediaId = image.MediaId; if (string.IsNullOrEmpty(mediaId)) { var filePath = _pathManager.ParsePath(image.Url); if (FileUtils.IsFileExists(filePath)) { var result = await MediaApi.UploadForeverMediaAsync(accessTokenOrAppId, filePath); mediaId = result.media_id; await _materialImageRepository.UpdateMediaIdAsync(materialId, mediaId); } } } else if (materialType == MaterialType.Audio) { var audio = await _materialAudioRepository.GetAsync(materialId); mediaId = audio.MediaId; if (string.IsNullOrEmpty(mediaId)) { var filePath = _pathManager.ParsePath(audio.Url); if (FileUtils.IsFileExists(filePath)) { var result = await MediaApi.UploadForeverMediaAsync(accessTokenOrAppId, filePath); mediaId = result.media_id; await _materialAudioRepository.UpdateMediaIdAsync(materialId, mediaId); } } } else if (materialType == MaterialType.Video) { var video = await _materialVideoRepository.GetAsync(materialId); mediaId = video.MediaId; if (string.IsNullOrEmpty(mediaId)) { var filePath = _pathManager.ParsePath(video.Url); if (FileUtils.IsFileExists(filePath)) { var result = await MediaApi.UploadForeverMediaAsync(accessTokenOrAppId, filePath); mediaId = result.media_id; await _materialVideoRepository.UpdateMediaIdAsync(materialId, mediaId); } } } return(mediaId); }