您的位置:首页 > 移动开发 > 微信开发

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

2016-11-08 14:23 429 查看
步骤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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: