module WeixinAuthorize::Api::Mass
def convert_media_info(msgtype, media_info)
def convert_media_info(msgtype, media_info) if media_info.is_a?(String) if msgtype == "text" return {"content" => media_info} else return {"media_id" => media_info} end end media_info end
def generate_media(msgtype, media_info, option)
def generate_media(msgtype, media_info, option) msgtype = msgtype.to_s raise "#{msgtype} is a valid msgtype" if not MSG_TYPE.include?(msgtype) { msgtype => convert_media_info(msgtype, media_info), "msgtype" => msgtype }.merge(option) end
def mass_base_url
def mass_base_url "/message/mass" end
def mass_delete_with_msgid(msg_id)
请注意,只有已经发送成功的消息才能删除删除消息只是将消息的图文详情页失效,已经收到的用户,还是能在其本地看到消息卡片。
def mass_delete_with_msgid(msg_id) mass_url = "#{mass_base_url}/delete" http_post(mass_url, {"msg_id" => msg_id}) end
def mass_get_status(msg_id)
def mass_get_status(msg_id) mass_url = "#{mass_base_url}/get" http_post(mass_url, {"msg_id" => msg_id}) end
def mass_preview(openid, media_info, msgtype="mpnews")
def mass_preview(openid, media_info, msgtype="mpnews") openid_option = {"touser" => openid} media = generate_media(msgtype, media_info, openid_option) mass_url = "#{mass_base_url}/preview" http_post(mass_url, media) end
def mass_with_group(group_id, media_info, msgtype="mpnews", is_to_all=false)
media_info= {"media_id" media_id}
def mass_with_group(group_id, media_info, msgtype="mpnews", is_to_all=false) group_option = {"filter" => {"group_id" => group_id.to_s, "is_to_all" => is_to_all}} media = generate_media(msgtype, media_info, group_option) mass_url = "#{mass_base_url}/sendall" http_post(mass_url, media) end
def mass_with_openids(openids, media_info, msgtype="mpnews")
if mpvideo,
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
def mass_with_openids(openids, media_info, msgtype="mpnews") openid_option = {"touser" => openids} media = generate_media(msgtype, media_info, openid_option) mass_url = "#{mass_base_url}/send" http_post(mass_url, media) end