根据OpenID列表群发

根据OpenID群发,订阅号不可用,认证后的服务号可用。

公众号的群发次数有限,所有必须慎重,用完了次数,你就只能等明天或者下个月了,^_^。

当你向某个用户群发消息的次数用完之后,继续向其群发消息,微信服务器并不会有任何提示,但对方肯定不会收到你群发的消息,因为微信服务器在群发的过程中自动将其排除在外了。

此外群发是是需要时间的,我们要做的只是通知微信服务器向全部或部分用户群发消息,什么时候完成得看腾讯的。

不过腾讯在群发完毕后,会推送一个事件到Foxtable端的HTTP服务,我们可以据此获取群发结果。

群发各种类型的消息,代码基本是相同的,需要注意的是,测试号只能群发文本消息。

群发文本消息

参考代码:

Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}"
Dim hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken"
)))
Dim
jo As New JObject()
Dim
ja As New JArray
ja
.Add("ojDlHuK8rykTyijSgRZl4osUn09E") '添加用户OpenID
ja
.Add("ojDlHuGwo2JqybedsudAmn8feI_g")
jo
("touser") = ja
jo
("msgtype") = "text"
jo
("text") = New JObject
jo
("text")("content") = "需要群发的文本消息"
hc
.Content = jo.ToString()
jo
= JObject.Parse(hc.GetData)
If
jo("errcode") = "0" Then
    MessageBox.Show("提交群发消息成功")

Else

    MessageBox.Show(jo("errmsg"))

End
If

群发图文消息

必须事先将要群发的图文消息上传到微信服务器,因为群发的只是图文素材的ID,参考代码:

Dim
url As String = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}"
Dim
hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
Dim
jo As New JObject()
Dim
ja As New JArray
ja
.Add("ojDlHuK8rykTyijSgRZl4osUn09E") '添加用户OpenID
ja
.Add("ojDlHuGwo2JqybedsudAmn8feI_g")
jo
("touser") = ja
jo
("mpnews") = New JObject
jo
("mpnews")("media_id") = "AO9_Rt0R6isjlzuh9Mskm5tTjK69DAjI7xozcdwStdk" '要群发的图文消息素材ID
jo
("msgtype") = "mpnews"
hc
.Content = jo.ToString()
jo
= JObject.Parse(hc.GetData)
If
jo("errcode") = "0" Then
    MessageBox.Show("提交群发消息成功")

Else

    MessageBox.Show(jo("errcode"))

End
If

群发视频消息

必须事先将要群发的视频文件上传到微信服务器,因为群发的只是视频素材的ID,参考代码:

Dim
url As String = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}"
Dim
hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
Dim
jo As New JObject()
Dim
ja As New JArray
ja
.Add("ojDlHuK8rykTyijSgRZl4osUn09E") '添加用户OpenID
ja
.Add("ojDlHuGwo2JqybedsudAmn8feI_g")
jo
("touser") = ja
jo
("mpvideo") = New JObject
jo
("mpvideo")("media_id") = "AO9_Rt0R6isjlzuh9MskmzglvCD-tb59QcXGNbdkE3E" '要群发的视频消息素材ID
jo
("mpvideo")("title") = "视频标题"
jo
("mpvideo")("description") = "视频内容简介"
jo
("msgtype") = "mpvideo"
hc
.Content = jo.ToString()
jo
= JObject.Parse(hc.GetData)
If
jo("errcode") = "0" Then
    MessageBox.Show("提交群发消息成功")

Else

    MessageBox.Show(jo("errcode"))

End
If

群发语音消息

必须事先将要群发的语音文件上传到微信服务器,因为群发的只是语音素材的ID,参考代码:

Dim
url As String = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}"
Dim
hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
Dim
jo As New JObject()
Dim
ja As New JArray
ja
.Add("ojDlHuK8rykTyijSgRZl4osUn09E") '添加用户OpenID
ja
.Add("ojDlHuGwo2JqybedsudAmn8feI_g")
jo
("touser") = ja
jo
("voice") = New JObject
jo
("voice")("media_id") = "AO9_Rt0R6isjlzuh9Mskm1VSuKR3vHgKyJkG3kHyKwg" '要群发的语音消息素材ID
jo
("msgtype") = "voice"
hc
.Content = jo.ToString()
jo
= JObject.Parse(hc.GetData)
If
jo("errcode") = "0" Then
    MessageBox.Show("提交群发消息成功")

Else

    MessageBox.Show(jo("errcode"))

End
If


本页地址:http://www.foxtable.com/mobilehelp/topics/0193.htm