跳转至

素材管理

公众号在发送消息时经常用到一些媒体素材,需要开发者在上传多媒体文件后,通过返回的 media_id 进行发送。

上传多媒体文件

http 请求方式: POST

调用方式:参见 API 调用签名规则,不同点是将放进 http header 中的参数放到 URL 后面,如下:

http://api.ps.ronghub.com/media/upload?type=TYPE&RC-PSKey=xxx&RC-Nonce=adbc134sdf&RC-Timestamp=1234556566&RC-Signature=123421dsfsvc03u4asdflvjdsdfsdf

表单参数:

名称 是否必须 说明
type 媒体文件类型,有图片(image)、语音(voice)、缩略图(thumb)。

上传的多媒体文件以表单文件方式上传,格式和大小限制如下: * 图片(image): 2 M,支持 JPG、PNG 格式。 * 缩略图(thumb) : 20 K,支持JPG、PNG格式。 * 语音(voice):60 k,播放长度不超过 60s,目前支持 AMR 格式。

Java 代码示例:

String urlStr = "http://api.ps.ronghub.com/media/upload?type=image&RC-PSKey=xxx&RC-Nonce=adbc134sdf&RC-Timestamp=1234556566&RC-Signature=123421dsfsvc03u4asdflvjdsdfsdf";

		//
		HttpClient httpclient = new DefaultHttpClient();
		// 请求处理页面
		 HttpPost httppost = new HttpPost(urlStr);

		// 创建待处理的文件
		FileBody file = new FileBody(new File(filepath));

		// 对请求的表单域进行填充
		MultipartEntity reqEntity = new MultipartEntity();
		reqEntity.addPart("file", file);

		// 设置请求
		httppost.setEntity(reqEntity);
		// 执行
		HttpResponse response = httpclient.execute(httppost);

		HttpEntity httpEntity = response.getEntity();
		BufferedReader br = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));
		StringBuffer backData = new StringBuffer();
		String line = null;
		while ((line = br.readLine()) != null) {
			backData.append(line);
		}
		System.out.println(backData.toString());

返回值

正常示例:

{
   "type":"image",
   "media_id":"12344343252",
   "created_at":123456789
}

错误示例:

{"errcode":1003,"errmsg":"invalid type "}

可根据返回错误码,在 API 返回状态码说明 中查看错误明细。

上传图文消息素材

http 请求方式: POST

调用方式:参见 API 调用签名规则,不同点是将放进 http header 中的参数放到 URL 后面,如下:

http://api.ps.ronghub.com/media/uploadnews?RC-PSKey=xxx&RC-Nonce=adbc134sdf&RC-Timestamp=1234556566&RC-Signature=123421dsfsvc03u4asdflvjdsdfsdf

POST 数据示例:

{
   "articles": [
		 {
        "thumb_media_id":"sdflsdfjxcl324324sdfsdlfsd",
        "author":"yyuy",
			  "title":"Happy ",
			  "content_source_url":"www.rongcloud.com",
			  "content":"content",
			  "digest":"digest",
        "show_cover_pic":"1"
		 },
		 {
        "thumb_media_id":" sdflsdfjxcl324324sdfsdlfsdasdfsdf",
        "author":"yy",
			  "title":"Happy",
			  "content_source_url":"www.rongcloud.com",
			  "content":"content",
			  "digest":"digest",
        "show_cover_pic":"0"
		 }
   ]
}

表单参数:

名称 是否必须 说明
articles 图文消息,一个图文消息支持 1 到 10 条图文。
thumb_media_id 图文消息缩略图的 media_id,可以在基础支持-上传多媒体文件接口中获得。
author 图文消息的作者。
title 图文消息的标题。
content_source_url 在图文消息页面点击“阅读原文”后链接的页面。
content 图文消息页面的内容,支持 HTML 标签。
digest 图文消息的描述。
show_cover_pic 是否显示封面,1 为显示,0 为不显示。

返回值

{
   "type":"news",
   "media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",
   "created_at":1391857799
}

表单参数:

名称 说明
type 媒体文件类型, news,即图文消息。
media_id 媒体文件/图文消息上传后获取的唯一标识。
created_at 媒体文件上传时间。