typed-wx-api
Version:
Typed Wechat API
118 lines • 4.45 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WxMpMedia = void 0;
const mp_base_1 = require("./mp_base");
const form_data_1 = __importDefault(require("form-data"));
/**
* @internal
*/
class WxMpMedia extends mp_base_1.WxMpBase {
/**
* 新增临时素材,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
*
* 1、临时素材media_id是可复用的。
* 2、媒体文件在微信后台保存时间为3天,即3天后media_id失效。
* 3、上传临时素材的格式、大小限制与公众平台官网一致。
* 图片(image): 10M,支持PNG\JPEG\JPG\GIF格式
* 语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式
* 视频(video):10MB,支持MP4格式
* 缩略图(thumb):64KB,支持JPG格式
* @group 临时素材
*/
uploadMedia(buffer, type, filename) {
return __awaiter(this, void 0, void 0, function* () {
const form = new form_data_1.default();
form.append('media', buffer, filename);
const result = yield this.request({
method: 'post',
headers: Object.assign(Object.assign({}, form.getHeaders()), { Accept: 'application/json' }),
data: form.getBuffer(),
url: 'media/upload',
params: { type }
});
return {
type: result.type,
media_id: result.media_id,
created_at: result.created_at
};
});
}
/**
* 获取临时素材
* 如果要获取视频素材, 请使用 getVideoMedia
* @param media_id
* @group 临时素材
*/
getMedia(media_id) {
return __awaiter(this, void 0, void 0, function* () {
const result = yield this.request({
url: 'media/get',
params: { media_id: media_id },
responseType: 'arraybuffer'
});
return result;
});
}
/**
* 获取临时视频素材
* @param media_id
* @group 临时素材
*/
getVideoMedia(media_id) {
return __awaiter(this, void 0, void 0, function* () {
const result = yield this.request({
url: 'media/get',
params: { media_id: media_id },
responseType: 'json'
});
return result;
});
}
/**
* 获取高清语音素材
* @group 临时素材
*/
getMediaHD(media_id) {
return __awaiter(this, void 0, void 0, function* () {
const result = yield this.request({
url: 'media/get/jssdk',
params: { media_id: media_id },
responseType: 'arraybuffer'
});
return result;
});
}
/**
* 上传图文消息内的图片获取URL
* @group 临时素材
*/
uploadImage(buffer, filename) {
return __awaiter(this, void 0, void 0, function* () {
const form = new form_data_1.default();
form.append('media', buffer, filename);
const result = yield this.request({
method: 'post',
headers: Object.assign(Object.assign({}, form.getHeaders()), { Accept: 'application/json' }),
data: form.getBuffer(),
url: 'media/uploadimg'
});
return {
url: result.url
};
});
}
}
exports.WxMpMedia = WxMpMedia;
//# sourceMappingURL=mp_media.js.map