2024-05-04 更新:不知道从什么时候开始,公众号的“图文素材”功能已经升级为“草稿箱”功能,所以下文提到的 media/uploadnews
接口建议改为 draft/add
接口。
概览:
具体:
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=${ACCESS_TOKEN}`;
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=${ACCESS_TOKEN}`;
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=${ACCESS_TOKEN}`;
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=${ACCESS_TOKEN}`;
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=${ACCESS_TOKEN}`;
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=${ACCESS_TOKEN}`;
无论是群发图文消息,还是群发图片、视频、语音等消息,关键都是拿到 media_id,上面群发图文消息是通过 media/uploadnews
拿到 media_id,而其他消息类型可以通过素材管理接口拿到 media_id,文档有这些非图文消息的群发说明。
素材管理接口可以分为临时素材管理接口、永久素材管理接口。
media/upload,媒体文件在微信后台保存时间为 3 天,即 3 天后 media_id 失效。
const ACCESS_TOKEN = "";
const TYPE = "";
const api = `https://api.weixin.qq.com/cgi-bin/media/upload?access_token=${ACCESS_TOKEN}&type=${TYPE}`;
material/add_news:新增永久图文,貌似下架了?文档找不到这个 API。media/uploadnews 上传的图文消息也是永久。
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=${ACCESS_TOKEN}`;
media/uploadimg:上传图文消息内的图片获取 URL。
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=${ACCESS_TOKEN}`;
material/add_material:新增其他类型永久素材,包括图片。
const ACCESS_TOKEN = "";
const TYPE = "";
const api = `https https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=${ACCESS_TOKEN}&type=${TYPE}`;
通过素材管理 API 获取到的图片、语音的 media_id 可以直接用 mass/sendall
推送出去,但是获取到的视频 media_id 不能直接推送出去,还需要用 media/uploadvideo
这个 api 把这个 media_id 转换成另一个 media_id。
const ACCESS_TOKEN = "";
const api = `https://api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=${ACCESS_TOKEN}`;
//把下面的数据 post 到 api
const body = {
media_id: "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",
title: "TITLE",
description: "Description",
};
//api 返回的数据,这次拿到的 media_id 才可以群发
const result = {
type: "video",
media_id: "IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",
created_at: 1398848981,
};
群发的内容是这样获取 media_id(临时、永久) 的:
media/uploadnews
或 draft/add
,其中文章内的图片用 media/uploadimg
获取 url;media/upload
或 material/add_material
,再 media/uploadvideo
;media/upload
或 material/add_material
media/upload
或 material/add_material
发布用 mass/sendall
或 mass/send
,传入通过上一个步骤获取 media_id
draft/add
、media/uploadimg
个人无认证的订阅号也可以用,media/uploadnews
、mass/sendall
、mass/send
需要认证才可以用。
相关文章: