上传永久素材(图片)

上传永久素材(图片)

功能说明

使用 Senparc 的 MediaApi.UploadImg 接口可以上传永久图片素材。与临时素材不同,该接口专门用于上传图文消息中需要引用的图片(如封面图、正文图片),上传成功后会直接返回一个可公网访问的图片 URL,无需再通过 media_id 获取。

注意:UploadImg 上传的是”图文消息内使用的图片”,不是普通永久素材(UploadForeverMedia)。两者用途不同。

实现代码

/// <summary>
/// 上传永久素材 主要用到MediaApi这个接口
/// </summary>
/// <returns></returns>
public UploadImgResult UploadImg()
{
    var accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
    string imgFilePath = Server.MapPath("~/logo.png");
    return MediaApi.UploadImg(accessToken, imgFilePath);
}Code language: PHP (php)

返回结果

UploadImgResult 主要包含以下属性:

属性说明
url图片的公网访问地址,可直接用于图文消息的 content
errcode错误码,0 表示成功
errmsg错误信息,”ok” 表示成功

上传成功后,url 类似:

http://mmbiz.qpic.cn/mmbiz/xxxxxxxxxx/0Code language: JavaScript (javascript)

该地址可直接在浏览器中打开,也可嵌入到图文消息的 HTML 内容中。

使用场景

  • 图文消息正文中需要插入图片时,先用此接口上传,拿到 url 后写入 content
  • 自定义菜单中 view 类型跳转的页面需要引用图片
  • 自动回复图文消息(News)时,封面图需使用 UploadForeverMedia 获取 thumb_media_id,正文图片可用此接口

与 UploadTemporaryMedia 的区别

对比项UploadImgUploadTemporaryMedia
用途图文消息内图片临时媒体文件
返回直接返回图片 URL返回 media_id
有效期永久3 天
适用类型仅图片图片、语音、视频、缩略图

与 UploadForeverMedia 的区别

对比项UploadImgUploadForeverMedia
用途图文正文图片永久素材库中的图片/语音/视频
返回图片 URLmedia_id
是否入库素材库否(仅返回 URL)是(可在素材库中管理)

注意:如果需要在自动回复中发送图片消息(ResponseMessageImage),应使用 UploadForeverMedia 获取 media_id,而不是 UploadImg

常见问题

  • 图片大小限制:不超过 1MB
  • 图片格式:支持 bmp、png、jpeg、jpg、gif
  • 文件路径必须是服务器本地绝对路径,不能传 URL(与临时素材上传同理)
  • 未认证订阅号可能无权限调用此接口,测试账号通常可用

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注