1.发送消息-群发接口:
暂时5个重点:
1>图文消息中需要的图片,得使用 "上传图文消息内图片接口,上传成功并获得图片URL",替换文本中的图片路径!
2>
is_to_all = true,会让群发消息,进入公众号在微信客户端的历史消息列表(应该是用户打开公众号,就可以看到之前的一条条群发消息记录,可再次查看消息内容)
认证订阅号,一天,只能使用 'is_to_all=true' 一次!
服务号,一个月,只能使用 'is_to_all=true' 4次!
is_to_all = false,是可以多次群发的,但每个用户只会收到最多4条,且这些群发不会进入历史消息列表
3>请开发者注意,本接口中所有使用到media_id的地方,现在都可以使用素材管理中的永久素材media_id了 -------------- 这个很关键啊!!!
4>请注意,使用同一个素材群发出去的链接是一样的,这意味着,删除某一次群发,会导致整个链接失效 -------------- 这个也得注意!!!
5>具备微信支付权限的公众号,在使用群发接口上传、群发图文消息类型时,可使用<a>标签加入外链 ------------------- 通过编辑器的<a>链接,应该会直接被 "微信过滤掉" !
接口:
1>上传图文消息内的图片获取URL - (订阅号与服务号认证后均可用)
-- 本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制 - 切记!
-- 图片仅支持jpg/png格式 - 切记!
-- 大小必须在1MB以下 - 切记!
api_url:
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
参数:
media = @imgUrl;
返回值:
{url : xxx}
2>上传图文消息素材 - (订阅号与服务号认证后均可用) --------- 暂不知道哪里使用。。。
api_url:
https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN
3>根据标签进行群发 - (订阅号与服务号认证后均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN
较特殊的2个类型:
1.图文消息类型:
参数:
{
"filter":{
"is_to_all":false, // 是否是所有人
"tag_id":2 // 标签组id,is_to_all=true,不用填写tag_id
},
"mpnews":{
"media_id":"123dsdajkasd231jhksad" // 这里的media_id,文档中表示是从 '接口2' 中返回的media_id(暂不清楚上传永久图文素材的接口可以不。。。接口2和永久上传图文素材的区别是啥??)
},
"msgtype":"mpnews"
}
2.视频消息类型:
分2步:
1>得经过 'https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN' 接口,返回一个处理过的media_id,然后再调用接口
api_url:
https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN
参数:
{
"media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ", // 我们通过 '永久素材上传得到的media_id'
"title": "TITLE",
"description": "Description"
}
返回值:
{
"type":"video",
"media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc", // 接口返回的处理过的media_id
"created_at":1398848981
}
2>使用 '1>' 中的media_id,调用群发接口
参数:
{
"filter":{
"is_to_all":false,
"tag_id":2
},
"mpvideo":{
"media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc"
},
"msgtype":"mpvideo"
}
在返回成功时,意味着群发任务提交成功,并不意味着此时群发已经结束,所以,仍有可能在后续的发送过程中出现异常情况导致用户未收到消息,如消息有时会进行审核、服务器不稳定等。此外,群发任务一般需要较长的时间才能全部发送完毕,请耐心等待。
4>根据OpenID "列表" 群发 - (订阅号不可用,服务号认证后可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
同 '接口3',一样是2个特殊类型
图文消息类型:
{
// 区别是 : 第一个属性变为 'touser',是一个openid的列表
"touser":[
"OPENID1",
"OPENID2"
],
"mpnews":{
"media_id":"123dsdajkasd231jhksad"
},
"msgtype":"mpnews"
}
视频消息类型 - 同样记得分2步!!!
5>删除群发 - (订阅号与服务号认证后均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=ACCESS_TOKEN
参数:
{
"msg_id":30124
}
注意:
1、只有已经发送成功的消息才能删除(成功返回了 msg_id)
2、删除消息是将消息的图文详情页失效,已经收到的用户,还是能在其本地看到消息卡片(已经发送到了用户的手机上,用户自然可以看到简介。。)
3、删除群发消息只能删除图文消息和视频消息,其他类型的消息一经发送,无法删除(图文是可以点击进入详情的,视频也是点击播放。文本和图片,自然直接就展示出来了。语音么,看文档的意思是:直接播放。。)
4、如果多次群发发送的是一个图文消息,那么删除其中一次群发,就会删除掉这个图文消息页,导致所有群发都失效(开始的5个重点提到了:相同的素材,链接是一致的。。)
6>预览接口 - (订阅号与服务号认证后均可用)
得注意:
为了满足第三方平台开发者的需求,在保留对openID预览能力的同时,增加了对指定微信号发送预览的能力,但该能力每日调用次数有限制(100次),请勿滥用。
touser - 无限调用
towxname - 每日100次
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN
参数:
{
// 2者是或的关系,2个都存在,优先使用 'towxname'
"touser":'openid'
-- || --
"towxname":"微信号名称", // 我们知道某人的微信号就可以发送,而不用再去查找该用户对应的openid,麻烦!
-----------------------------------------------
"mpnews":{
"media_id":"123dsdajkasd231jhksad"
},
"msgtype":"mpnews"
}
7>查询群发消息发送状态 - (订阅号与服务号认证后均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=ACCESS_TOKEN
参数:
{
"msg_id":30124
}
返回值:
{
"msg_id":30124,
"msg_status":"SEND_SUCCESS" // 只有 'SEND_SUCCESS' 才表示发送成功
}
事件推送群发结果 - 这个是统一的事件处理接口中定义好的!
1>由于群发任务提交后,群发任务可能在一定时间后才完成,因此,群发接口调用时,仅会给出群发任务是否提交成功的提示,若群发任务提交成功,则在群发任务结束时,会向开发者在公众平台填写的开发者URL(callback URL)推送事件。
2>需要注意,由于群发任务彻底完成需要较长时间,将会在群发任务即将完成的时候,就推送群发结果,此时的推送人数数据将会与实际情形存在一定误差
暂时5个重点:
1>图文消息中需要的图片,得使用 "上传图文消息内图片接口,上传成功并获得图片URL",替换文本中的图片路径!
2>
is_to_all = true,会让群发消息,进入公众号在微信客户端的历史消息列表(应该是用户打开公众号,就可以看到之前的一条条群发消息记录,可再次查看消息内容)
认证订阅号,一天,只能使用 'is_to_all=true' 一次!
服务号,一个月,只能使用 'is_to_all=true' 4次!
is_to_all = false,是可以多次群发的,但每个用户只会收到最多4条,且这些群发不会进入历史消息列表
3>请开发者注意,本接口中所有使用到media_id的地方,现在都可以使用素材管理中的永久素材media_id了 -------------- 这个很关键啊!!!
4>请注意,使用同一个素材群发出去的链接是一样的,这意味着,删除某一次群发,会导致整个链接失效 -------------- 这个也得注意!!!
5>具备微信支付权限的公众号,在使用群发接口上传、群发图文消息类型时,可使用<a>标签加入外链 ------------------- 通过编辑器的<a>链接,应该会直接被 "微信过滤掉" !
接口:
1>上传图文消息内的图片获取URL - (订阅号与服务号认证后均可用)
-- 本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制 - 切记!
-- 图片仅支持jpg/png格式 - 切记!
-- 大小必须在1MB以下 - 切记!
api_url:
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
参数:
media = @imgUrl;
返回值:
{url : xxx}
2>上传图文消息素材 - (订阅号与服务号认证后均可用) --------- 暂不知道哪里使用。。。
api_url:
https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN
3>根据标签进行群发 - (订阅号与服务号认证后均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN
较特殊的2个类型:
1.图文消息类型:
参数:
{
"filter":{
"is_to_all":false, // 是否是所有人
"tag_id":2 // 标签组id,is_to_all=true,不用填写tag_id
},
"mpnews":{
"media_id":"123dsdajkasd231jhksad" // 这里的media_id,文档中表示是从 '接口2' 中返回的media_id(暂不清楚上传永久图文素材的接口可以不。。。接口2和永久上传图文素材的区别是啥??)
},
"msgtype":"mpnews"
}
2.视频消息类型:
分2步:
1>得经过 'https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN' 接口,返回一个处理过的media_id,然后再调用接口
api_url:
https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN
参数:
{
"media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ", // 我们通过 '永久素材上传得到的media_id'
"title": "TITLE",
"description": "Description"
}
返回值:
{
"type":"video",
"media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc", // 接口返回的处理过的media_id
"created_at":1398848981
}
2>使用 '1>' 中的media_id,调用群发接口
参数:
{
"filter":{
"is_to_all":false,
"tag_id":2
},
"mpvideo":{
"media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc"
},
"msgtype":"mpvideo"
}
在返回成功时,意味着群发任务提交成功,并不意味着此时群发已经结束,所以,仍有可能在后续的发送过程中出现异常情况导致用户未收到消息,如消息有时会进行审核、服务器不稳定等。此外,群发任务一般需要较长的时间才能全部发送完毕,请耐心等待。
4>根据OpenID "列表" 群发 - (订阅号不可用,服务号认证后可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
同 '接口3',一样是2个特殊类型
图文消息类型:
{
// 区别是 : 第一个属性变为 'touser',是一个openid的列表
"touser":[
"OPENID1",
"OPENID2"
],
"mpnews":{
"media_id":"123dsdajkasd231jhksad"
},
"msgtype":"mpnews"
}
视频消息类型 - 同样记得分2步!!!
5>删除群发 - (订阅号与服务号认证后均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=ACCESS_TOKEN
参数:
{
"msg_id":30124
}
注意:
1、只有已经发送成功的消息才能删除(成功返回了 msg_id)
2、删除消息是将消息的图文详情页失效,已经收到的用户,还是能在其本地看到消息卡片(已经发送到了用户的手机上,用户自然可以看到简介。。)
3、删除群发消息只能删除图文消息和视频消息,其他类型的消息一经发送,无法删除(图文是可以点击进入详情的,视频也是点击播放。文本和图片,自然直接就展示出来了。语音么,看文档的意思是:直接播放。。)
4、如果多次群发发送的是一个图文消息,那么删除其中一次群发,就会删除掉这个图文消息页,导致所有群发都失效(开始的5个重点提到了:相同的素材,链接是一致的。。)
6>预览接口 - (订阅号与服务号认证后均可用)
得注意:
为了满足第三方平台开发者的需求,在保留对openID预览能力的同时,增加了对指定微信号发送预览的能力,但该能力每日调用次数有限制(100次),请勿滥用。
touser - 无限调用
towxname - 每日100次
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN
参数:
{
// 2者是或的关系,2个都存在,优先使用 'towxname'
"touser":'openid'
-- || --
"towxname":"微信号名称", // 我们知道某人的微信号就可以发送,而不用再去查找该用户对应的openid,麻烦!
-----------------------------------------------
"mpnews":{
"media_id":"123dsdajkasd231jhksad"
},
"msgtype":"mpnews"
}
7>查询群发消息发送状态 - (订阅号与服务号认证后均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=ACCESS_TOKEN
参数:
{
"msg_id":30124
}
返回值:
{
"msg_id":30124,
"msg_status":"SEND_SUCCESS" // 只有 'SEND_SUCCESS' 才表示发送成功
}
事件推送群发结果 - 这个是统一的事件处理接口中定义好的!
1>由于群发任务提交后,群发任务可能在一定时间后才完成,因此,群发接口调用时,仅会给出群发任务是否提交成功的提示,若群发任务提交成功,则在群发任务结束时,会向开发者在公众平台填写的开发者URL(callback URL)推送事件。
2>需要注意,由于群发任务彻底完成需要较长时间,将会在群发任务即将完成的时候,就推送群发结果,此时的推送人数数据将会与实际情形存在一定误差