extend api.
extend api.
$ npm install extend-api
const { Api, ApiExtend } = require('extend-api');
let CustomApi = class customApi extends Api {
constructor(token) { super(); this.token = token; }
// override
async buildApiReqOpts(extendInvokeOpts) {
// attach 'token'
extendInvokeOpts.qs = Object.assign({ token: this.token }, extendInvokeOpts.qs);
return extendInvokeOpts;
}
};
let MessageExtend = class MessageExtend extends ApiExtend {
async send(to, content) {
return await this.invoke(
'https://api.weixin.qq.com/cgi-bin/message/custom/send',
// request opts.
// (see: https://github.com/request/request#requestoptions-callback)
{
body: {
touser: to, msgtype: 'text',
text: { content }
}
}, 'POST');
}
};
let api = new CustomApi('token..');
// register
api.extend('message', MessageExtend);
api.message.send('to', 'content')
.then(function (result) {
// ..
}).catch(function (err) {
// ..
});
// or
// await api.message.send('openId', 'content');