【图文信息】C#群发微信图文信息(Senparc.Weixin.MP.dll)

步骤1:上传图片素材得到media_id

步骤2:上传永久图文素材得到media_id(封面图片为步骤1图片素材的media_id)

步骤3:群发图文素材media_id


            #region 群发到微信

            //根据appId判断获取  
            if (!AccessTokenContainer.CheckRegistered(appId))      //检查是否已经注册  
            {
                AccessTokenContainer.Register(appId, appSecret);   //如果没有注册则进行注册  
            }
            string access_token = AccessTokenContainer.GetAccessTokenResult(appId).access_token;   //获取AccessToken结果
            string media_id_img = "";     //图片media_id
            string media_id_tuwen = "";   //图文media_id

            //新增永久素材(图片)  将作为微信群发消息的封面图片
            UploadForeverMediaResult uploadResult_IMG = MediaApi.UploadForeverMedia(access_token, Server.MapPath(imgPathWX));
            if (uploadResult_IMG.errcode.ToString().Contains("成功"))
            {
                media_id_img = uploadResult_IMG.media_id;    
            }
            else 
            {
                Js.JsAlert(this, "", "新增图片素材出错:" + uploadResult_IMG.errmsg, "error", "");
                return;
            }

            //新增永久素材(图文)            
            NewsModel newsmodel = new NewsModel();
            newsmodel.title = title;
            newsmodel.thumb_media_id = media_id_img;    //上面的图片素材media_id
            newsmodel.author = "";
            newsmodel.digest = StringUtil.DropHTML(weixin_content, 250);
            newsmodel.show_cover_pic = "1";

            #region 将内容中的图片转为微信图片   注:内容中的图片必须通过微信官方接口转换,否则微信将过滤图片,不显示
            if (weixin_content.Contains("src=")) 
            {
                Regex reg = new Regex("(i?)<img.*? src=\"?(.*?\\.(jpg|gif|bmp|bnp|png))\".*?\\s?/>");   //定义正则表达式
                MatchCollection mc = reg.Matches(weixin_content);  //在内容中匹配与正则表达式匹配的字符
                foreach (Match m in mc)     //循环匹配到的字符
                {
                    if (!m.Value.Contains("http://"))    //外链的图片就不用转换了(外链的就是已经转换为微信链接的)
                    {
                        int srcIndex = m.Value.IndexOf("src=\"");
                        string strSrc = m.Value.Substring(srcIndex);
                        int firstIndex = strSrc.IndexOf("\"");
                        int lastIndex = strSrc.IndexOf("\"", firstIndex + 1);

                        string src = strSrc.Substring(firstIndex + 1, lastIndex - firstIndex - 1);
                        string srcPath = Server.MapPath(src);

                        //将内容中的图片上传到微信服务器
                        UploadImgResult uploadImgResult = MediaApi.UploadImg(access_token, srcPath);
                        if (uploadImgResult.errcode.ToString().Contains("成功"))   //返回的是请求成功
                        {
                            weixin_content = weixin_content.Replace(src, uploadImgResult.url);
                        }
                        else
                        {
                            Js.JsAlert(this, "", "转为微信图片出错:" + uploadImgResult.errmsg, "error", "");
                            return;
                        }
                    }
                }
            }
            #endregion
            newsmodel.content = weixin_content;
            newsmodel.content_source_url = "";
            UploadForeverMediaResult uploadResult_TUWEN = MediaApi.UploadNews(access_token, 10000, newsmodel);
            if (uploadResult_TUWEN.errcode.ToString().Contains("成功"))    //返回的是请求成功
            {
                media_id_tuwen = uploadResult_TUWEN.media_id;
            }
            else 
            {
                Js.JsAlert(this, "", "新增图文素材出错:" + uploadResult_TUWEN.errmsg, "error", "");
                return;
            }

            //群发图文消息(这个是根据openId群发的,根据实际修改)
            SendResult sendResult = GroupMessageApi.SendGroupMessageByOpenId(access_token, GroupMessageType.mpnews, media_id_tuwen, 10000, new string[] { "oLTAiwWgQvNmEerkShPq5YwICEXQ", "oLTAiwbWgpL8bYJZLGb_GewLSxm4" });
            if (!sendResult.errcode.ToString().Contains("成功"))    //返回的是请求成功
            {
                Js.JsAlert(this, "", "微信群发出错:" + sendResult.errmsg, "error", "");
                return;
            }
            
            #endregion

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值