Skip to content

Commit

Permalink
Merge pull request node-webot#9 from node-webot/add_mass_api
Browse files Browse the repository at this point in the history
添加查询群发消息发送状态和预览接口
  • Loading branch information
JacksonTian committed Dec 26, 2014
2 parents 11f9cb8 + be0e433 commit 7d3bfad
Showing 1 changed file with 250 additions and 10 deletions.
260 changes: 250 additions & 10 deletions lib/api_mass_send.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var postJSON = util.postJSON;

/**
* 上传多媒体文件,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.uploadNews(news, callback);
Expand Down Expand Up @@ -66,7 +66,7 @@ exports._uploadNews = function (news, callback) {

/**
* 将通过上传下载多媒体文件得到的视频media_id变成视频素材
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.uploadMPVideo(opts, callback);
Expand Down Expand Up @@ -111,7 +111,7 @@ exports._uploadMPVideo = function (opts, callback) {

/**
* 群发消息,分别有图文(news)、文本(text)、语音(voice)、图片(image)和视频(video)
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSend(opts, receivers, callback);
Expand Down Expand Up @@ -168,7 +168,7 @@ exports._massSend = function (opts, receivers, callback) {

/**
* 群发图文(news)消息
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSendNews(mediaId, receivers, callback);
Expand Down Expand Up @@ -203,7 +203,7 @@ exports.massSendNews = function (mediaId, receivers, callback) {

/**
* 群发文字(text)消息
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSendText(content, receivers, callback);
Expand Down Expand Up @@ -238,7 +238,7 @@ exports.massSendText = function (content, receivers, callback) {

/**
* 群发声音(voice)消息
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSendVoice(media_id, receivers, callback);
Expand Down Expand Up @@ -273,7 +273,7 @@ exports.massSendVoice = function (mediaId, receivers, callback) {

/**
* 群发图片(image)消息
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSendImage(media_id, receivers, callback);
Expand Down Expand Up @@ -308,7 +308,7 @@ exports.massSendImage = function (mediaId, receivers, callback) {

/**
* 群发视频(video)消息
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSendVideo(mediaId, receivers, callback);
Expand Down Expand Up @@ -343,7 +343,7 @@ exports.massSendVideo = function (mediaId, receivers, callback) {

/**
* 群发视频(video)消息,直接通过上传文件得到的media id进行群发(自动生成素材)
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.massSendMPVideo(data, receivers, callback);
Expand Down Expand Up @@ -387,7 +387,7 @@ exports.massSendMPVideo = function (data, receivers, callback) {

/**
* 删除群发消息
* 详情请见:<http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口>
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.deleteMass(message_id, callback);
Expand Down Expand Up @@ -419,3 +419,243 @@ exports._deleteMass = function (messageId, callback) {
var url = this.prefix + 'message/mass/delete?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

/**
* 预览接口,预览图文消息
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.previewNews(openid, mediaId, callback);
* ```
* Callback:
*
* - `err`, 调用失败时得到的异常
* - `result`, 调用正常时得到的对象
*
* Result:
* ```
* {
* "errcode":0,
* "errmsg":"send job submission success",
* "msg_id": 34182
* }
* ```
*
* @param {String} openid 用户openid
* @param {String} mediaId 图文消息mediaId
* @param {Function} callback 回调函数
*/
exports.previewNews = function (openid, mediaId, callback) {
this.preRequest(this._previewNews, arguments);
};

exports._previewNews = function (openid, mediaId, callback) {
var opts = {
"touser": openid,
"mpnews": {
"media_id": mediaId
},
"msgtype":"mpnews"
};
var url = this.prefix + 'message/mass/preview?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

/**
* 预览接口,预览文本消息
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.previewText(openid, content, callback);
* ```
* Callback:
*
* - `err`, 调用失败时得到的异常
* - `result`, 调用正常时得到的对象
*
* Result:
* ```
* {
* "errcode":0,
* "errmsg":"send job submission success",
* "msg_id": 34182
* }
* ```
*
* @param {String} openid 用户openid
* @param {String} content 文本消息
* @param {Function} callback 回调函数
*/
exports.previewText = function (openid, content, callback) {
this.preRequest(this._previewText, arguments);
};

exports._previewText = function (openid, content, callback) {
var opts = {
"touser": openid,
"text": {
"content": content
},
"msgtype":"text"
};
var url = this.prefix + 'message/mass/preview?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

/**
* 预览接口,预览语音消息
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.previewVoice(openid, mediaId, callback);
* ```
* Callback:
*
* - `err`, 调用失败时得到的异常
* - `result`, 调用正常时得到的对象
*
* Result:
* ```
* {
* "errcode":0,
* "errmsg":"send job submission success",
* "msg_id": 34182
* }
* ```
*
* @param {String} openid 用户openid
* @param {String} mediaId 语音mediaId
* @param {Function} callback 回调函数
*/
exports.previewVoice = function (openid, mediaId, callback) {
this.preRequest(this._previewVoice, arguments);
};

exports._previewVoice = function (openid, mediaId, callback) {
var opts = {
"touser": openid,
"voice": {
"media_id": mediaId
},
"msgtype":"voice"
};
var url = this.prefix + 'message/mass/preview?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

/**
* 预览接口,预览图片消息
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.previewImage(openid, mediaId, callback);
* ```
* Callback:
*
* - `err`, 调用失败时得到的异常
* - `result`, 调用正常时得到的对象
*
* Result:
* ```
* {
* "errcode":0,
* "errmsg":"send job submission success",
* "msg_id": 34182
* }
* ```
*
* @param {String} openid 用户openid
* @param {String} mediaId 图片mediaId
* @param {Function} callback 回调函数
*/
exports.previewImage = function (openid, mediaId, callback) {
this.preRequest(this._previewImage, arguments);
};

exports._previewImage = function (openid, mediaId, callback) {
var opts = {
"touser": openid,
"image": {
"media_id": mediaId
},
"msgtype":"image"
};
var url = this.prefix + 'message/mass/preview?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

/**
* 预览接口,预览视频消息
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.previewVideo(openid, mediaId, callback);
* ```
* Callback:
*
* - `err`, 调用失败时得到的异常
* - `result`, 调用正常时得到的对象
*
* Result:
* ```
* {
* "errcode":0,
* "errmsg":"send job submission success",
* "msg_id": 34182
* }
* ```
*
* @param {String} openid 用户openid
* @param {String} mediaId 视频mediaId
* @param {Function} callback 回调函数
*/
exports.previewVideo = function (openid, mediaId, callback) {
this.preRequest(this._previewVideo, arguments);
};

exports._previewVideo = function (openid, mediaId, callback) {
var opts = {
"touser": openid,
"mpvideo": {
"media_id": mediaId
},
"msgtype":"mpvideo"
};
var url = this.prefix + 'message/mass/preview?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

/**
* 查询群发消息状态
* 详情请见:<http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html>
* Examples:
* ```
* api.getMassMessageStatus(messageId, callback);
* ```
* Callback:
*
* - `err`, 调用失败时得到的异常
* - `result`, 调用正常时得到的对象
*
* Result:
* ```
* {
* "msg_id":201053012,
* "msg_status":"SEND_SUCCESS"
* }
* ```
*
* @param {String} messageId 消息ID
* @param {Function} callback 回调函数
*/
exports.getMassMessageStatus = function (messageId, callback) {
this.preRequest(this._getMassMessageStatus, arguments);
};

exports._getMassMessageStatus = function (messageId, callback) {
var opts = {
"msg_id": messageId
};
var url = this.prefix + 'message/mass/get?access_token=' + this.token.accessToken;
this.request(url, postJSON(opts), wrapper(callback));
};

0 comments on commit 7d3bfad

Please sign in to comment.