微信发送图文消息,查看图文media_id
前言
微信PC后台群发送服务号的通知消息会消耗发送次数,每月4次;这里想通过微信API发送。
注:本文只需要使用CURL工具即可全部完成
比较 | 微信后台 | 微信API |
---|---|---|
富文本 | 美观,不限字数,排版整齐 | 使用图片替代大文本,可以写少量文字,需要HTML格式,且不能大于2W字符 |
发送次数 | 无论怎么群发,只有4次 | 每个openid四次 |
操作 | 简单,方便 | 熟练后也可达到操作方便 |
实现目标
查看发送后效果&广东人保(手机微信打开效果更好)
准备
登录微信测试
打开这三个链接
微信公众平台接口测试帐号申请
微信官方开发文档
微信开发-错误码大全
1、获取access_token
测试账号里边都有参数,获取后时效2H
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
2、上传封面
这里看你发图文消息需要新增永久素材,首先上传封面主图,然后上传你点击图文通知后的页面中所需要的图片(也就是你点击封面跳转的主页,用图片可以解决内容限制问题)
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
http请求方式: POST,需使用https https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
调用示例(使用curl命令,用FORM表单方式新增一个其他类型的永久素材,curl命令的使用请自行查阅资料)
2.1 返回值
{"media_id":"JhEacS4lHSZQWtj5CO01-g-SPRIwcR9O0MbUl_yC6mQ","url":"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/xGfbYHhGLIaeUpoYUJ1PEoJ4LeUtxkias9lK331qhl6J8zbycVVbQyx4DCODLbAibTafXkBSlga8hPBVHwnkKMVw\/0?wx_fmt=png","item":[]}
我们需要的封面图片的永久素材链接就拿到了,第一张图片做封面,其他图片作为图文内容
3、上传图文消息素材【订阅号与服务号认证后均可用】
3.1 上传素材模板
https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN
http请求方式: POST,https协议 https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN
{"articles": [ {"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p","author":"xxx", "title":"Happy Day", "content_source_url":"www.qq.com", "content":"content", "digest":"digest","show_cover_pic":1,"need_open_comment":1,"only_fans_can_comment":1}, {"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p","author":"xxx", "title":"Happy Day", "content_source_url":"www.qq.com", "content":"content", "digest":"digest","show_cover_pic":0,"need_open_comment":1,"only_fans_can_comment":1}]
}
3.2 举例
多图文就上传多个,我做的单图文,就上传了一个,内容写其他图片的链接,写HTML,注意不要引入外部链接,需要的是微信自己的永久链接,包括content内引入
{"articles": [{"title": "倒计时4天!这项福利马上截止!","thumb_media_id": "JhEacS4lHSZQWtj5CO01-pmMTWyiwf9dmaLNNYz7-bc","author": "广东人保财险","digest": "潮州市民专属","show_cover_pic":0,"content": " <img src='http://mmbiz.qpic.cn/mmbiz_png/xGfbYHhGLIaeUpoYUJ1PEoJ4LeUtxkias9lK331qhl6J8zbycVVbQyx4DCODLbAibTafXkBSlga8hPBVHwnkKMVw/0?wx_fmt=png' /><br/><img src='http://mmbiz.qpic.cn/mmbiz_jpg/ARnXGRTURlbiaibLeLOIR7GA3LzI833qFIMXKl2SMiba3EBIyldzfoic8DtFLn1gBEDubLEibJQwlWLlPmyA5db1FYg/0?wx_fmt=jpeg' /><br/>点击阅读原文","content_source_url": "https://mp.weixin.qq.com/s/PwX_aYbDWQjGSr8sHH2eZQ","need_open_comment":1,"only_fans_can_comment":1}]
}
3.3 返回值
需要这个media_id
{"media_id":"JhEacS4lHSZQWtj5CO01-lUmY_KyWn4ZA-jtCE-hBJA","item":[]}
4、预览接口【订阅号与服务号认证后均可用】
https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN
图文消息(其中media_id与根据分组群发中的media_id相同):
其他消息类型
{"touser":"OPENID", "mpnews":{ "media_id":"123dsdajkasd231jhksad" },"msgtype":"mpnews"
}
5、接收预览
进行完第4步你就可以获取到微信通知,在你的订阅号打开就可以看了,至此实现了开篇动图效果。预览完毕调用发送接口即可群发给指定用户,标签,所有群体
6、群发
在预览界面查看点击确认无问题后,执行群发。
URL
https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
群发可以选择按照用户群发或者按照标签群发,这里推荐按照标签群发,只用调一遍接口
更多群发方式,语音,文字,视频
{"filter":{"is_to_all":false,"tag_id":137},"mpnews":{"media_id":"XCRd2iesS4v24lqvDXkusDl268USWhP4qc3pjqPNPY4"},"msgtype":"mpnews","send_ignore_reprint":0
}
参数
返回值
这个msg_id需要用
{"errcode": 0,"errmsg": "send job submission success","msg_id": 3147494172,"msg_data_id": 2652648566
}
7、校验群发结果
URL
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=ACCESS_TOKEN
参数
{"msg_id": "201053012"
}
返回值
成功发送
{"msg_id": 3147494172,"msg_status": "SEND_SUCCESS"
}
8、删除群发
当你觉得群发出现错误时,可以选择删除群发,相当于撤回,这里笔者没有尝试,任务发送复查没问题后结束任务
删除群发【订阅号与服务号认证后均可用】
URL
https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=ACCESS_TOKEN
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=ACCESS_TOKEN
参数
{"msg_id":30124,"article_idx":2
}
返回值
{"errcode":0,"errmsg":"ok"
}
9、查看图文media_id
有时候通过微信后台编辑好了模板media_id,但是我们自己CURL并不知道,所以就需要API获取
获取永久素材的列表
URL
http请求方式: POST https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN
参数
{"type":TYPE,"offset":OFFSET,"count":COUNT
}
参考我的,offset是1就是第几条开始,类似于分页,查两条就找到最新的了,按照type来查询
{"type":"news","offset":1,"count":2
}
返回
{"total_count": TOTAL_COUNT,"item_count": ITEM_COUNT,"item": [{"media_id": MEDIA_ID,"content": {"news_item": [{"title": TITLE,"thumb_media_id": THUMB_MEDIA_ID,"show_cover_pic": SHOW_COVER_PIC(0 / 1),"author": AUTHOR,"digest": DIGEST,"content": CONTENT,"url": URL,"content_source_url": CONTETN_SOURCE_URL},//多图文消息会在此处有多篇文章]},"update_time": UPDATE_TIME},//可能有多个图文消息item结构]
}
其他类型(图片、语音、视频)的返回如下:
{"total_count": TOTAL_COUNT,"item_count": ITEM_COUNT,"item": [{"media_id": MEDIA_ID,"name": NAME,"update_time": UPDATE_TIME,"url":URL},//可能会有多个素材]
}
错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):
{"errcode":40007,"errmsg":"invalid media_id"}
微信发送图文消息,查看图文media_id相关推荐
- 企业微信发送应用消息php,企业微信如何发送应用消息?及时发布重要通知
很多企业以前向员工发布通知的时候,要么是通过开会的方式传达,要么是通过文档的方式来通知员工.可是这样效率低,而且结果往往通知不到位.故此,现在很多企业开始使用企业微信发送应用消息来发布内部的重要通知. ...
- 微信发送接受消息测试用例
微信发送接受消息测试用例主要包括功能测试,界面测试,易用性测试,安全测试,性能测试,兼容性测试六个方面. 功能测试: 发送/接受各页面按键功能是否正常. 输入框可输入内容测试(汉字,字符,表情等)能正 ...
- Python定时向微信发送天气消息和每日一言[wxpy、apscheduler]
Python定时向微信发送天气消息和每日一言 Python定时向微信发送天气消息和每日一言 环境描述 引用库 部分代码 开发问题反馈和交流 Python定时向微信发送天气消息和每日一言 通过wxpy拉 ...
- 使用Python实现微信发送文本消息、图片以及附件
使用Python实现微信发送文本消息.图片以及附件 因为目前很多微信账号已经不支持网页版的操作了,因此无法使用之前的itchat这一类对微信进行操作. 为此,选择对微信PC端进行开发. 选择的方式比较 ...
- android仿微信语音聊天功能,Android仿微信发送语音消息的功能及示例代码
微信的发送语音是有一个向上取消的,我们使用ontouchlistener来监听手势,然后做出相应的操作就行了. 直接上代码: //语音操作对象 private mediaplayer mplayer ...
- Android仿微信发送语音消息动态提示,支持上滑取消发送
Android仿微信发送语音消息动态提示,支持上滑取消发送 先来几张图说明一下,简单直接: 是不是看了图片就秒懂 了. 下面来分析代码实现,直接撸代码. 主页面 AudioSendActivity.j ...
- 企业微信推送消息延迟_企业微信发送应用消息的实现
企业号升级到企业微信后,发送应用消息的接口也变化了不少,除了原来的文本.图片.文件.语音.视频.图文消息等消息外,增加了文本卡片.markdown消息.小程序通知消息等内容,不过它们都可以共用一个接口 ...
- iOS 仿微信发送语音消息按钮 - 手势按钮(一)
最近在做基于XMPP的IM,开发到发送语音消息的功能.在某度上搜了很久也没有找到适合的方法.索性自己琢磨了一个,提供给大家参考.(其中找到的很多文章都是一个复制另一个的,很烦!没格式没头没尾的.给不了 ...
- 基于WxPusher给自己的个人微信发送提醒消息(二)
(此篇可以供个人使用,由于我发现推送还需要我点一下才能查看,于是找了个不需要点,省掉一步的方案,写了第3篇,基于server饭进行实时vx推送(三)_vzhb的博客-CSDN博客) 使用的是pytho ...
- 微信发送模版消息,PHP代码简单案例
function http_request($url,$data=array()){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl ...
最新文章
- swift java混合,如何在Swift中连接或合并数组?
- 点击返回到另一个界面
- iOS - OC 面向对象语法
- 对乱糟糟的日志说再见
- 【SpringCloud从0到6】 第二节:Spring Cloud 和 Dubbo
- 树 | 突然间,看了这篇文章,树我懂了!
- 【英语学习】【Daily English】U05 Places L01 How can I get to the city museum?
- FTC再度对Facebook提起反垄断诉讼,要求其出售Instagram和WhatsApp
- 用c语言画图的步骤,怎样用c语言画图
- windows 10 安装 spark 环境(spark 2.2.1 + hadoop2.7)
- Python线程池ThreadPoolExecutor详细介绍
- java项目:基于ssm的高校后勤管理系统(spring+spring mvc+mybatis+easyui+jquery)1004
- npy文件转为csv文件
- bio linux 创建_[转载]biolinux包含软件
- 美国密歇根州立大学计算机专业,密歇根州立大学计算机科学与工程系开设的研究领域有哪些?...
- 世界上主流的导航电子地图数据标准/格式
- mysql的填充因子_数据库索引中的填充因子
- jump大乱斗维护服务器,Jump大乱斗常见问题解决方法_Jump大乱斗常见问题解决及按键设置方法_飞翔教程...
- 心理学 | (1)焦虑症和恐惧症--一种认知的观点
- python决策树画图_python输出决策树图形的例子
热门文章
- vscode 中 django基本操作
- Mininet系列实验(五):Mininet设置带宽之简单性能测试
- linux基础-快速入门
- 解决透视变换后图片信息丢失的问题,附程序
- 怎么删除淘宝足迹 淘宝足迹多久才能形成
- IOS图像2之jpg、png图片保存、互转、设置有损压缩因子
- 不允许使用抽象类类型的对象怎么办_什么是抽象类?
- error: device unauthorized.This adb server's $ADB_VENDOR_KEYS is not set
- 关于windows10升级
- Linux 添加开机启动服务