1. 程式人生 > >微信公眾平臺模擬登錄自動群發圖文消息工具包

微信公眾平臺模擬登錄自動群發圖文消息工具包

開始 索引 new 取圖 over leg rep decode 語音

無需微信認證即可實現微信公眾號自動群發圖文消息。

使用

npm i wechat-mp-hack --save
const Wechat = require(‘wechat-mp-hack‘);
const API = new Wechat(‘公眾號賬號‘, ‘公眾號密碼‘);

1.1.0版本後不再需要把調用方法包裹在 login回調後執行,調用下列核心方式時會自動處理登錄。

events

scan.login

登錄認證二維碼

API.once(‘scan.login‘, (filepath) => {
// 登錄二維碼圖片地址
console.log(filepath);
});

 

scan.send

開啟群發認證保護後調用群發接口需要微信掃描二維碼

API.on(‘scan.send‘, (filepath) => {
// 群發認證二維碼地址
console.log(filepath);
});

 

vcode

登錄驗證碼

API.once(‘vcode‘, (filepath) => {
// 驗證碼圖片地址
console.log(filepath);
});

methods

login

登錄接口

/**
* @desc 登錄公眾號
* @param {string} [imgcode] - [可選]驗證碼
* [url=home.php?mod=space&uid=67594]@Return[/url] {Promise<object>} data
*/
API.login().then(data => {
console.log(data);
}).catch(console.error.bind(console));

  

loginchk

檢測是否已經登錄

try {
let islogin = await API.loginchk();
console.log(‘已登錄‘);
} catch(e) {
console.log(‘未登錄‘);
}

  

appmsg

獲取圖文/視頻素材列表

/**
* 獲取圖文/視頻素材列表
* @param {number} [type] - 消息類型:圖文消息-10 視頻消息-15 默認-10
* @param {number} [begin] - 從第幾條開始 默認-0
* @param {number} [count] - 返回條數 默認-10
* @return {Promise<array>} - 素材列表
* @return {number} [].app_id - 素材id appMsgId
* @return {string} [].author - 作者
* @return {string} [].create_time - 創建時間,單位秒
* @return {number} [].data_seq
* @return {string} [].digest - 素材描述信息
* @return {number} [].file_id
* @return {string} [].img_url - 圖片地址
* @return {number} [].is_illegal
* @return {number} [].is_sync_top_stories
* @return {array} [].multi_item - 素材資源列表(一個素材下面有多個文章)
* @return {string} [].multi_item[].author - 文章作者
* @return {string} [].multi_item[].author_appid
* @return {number} [].multi_item[].can_reward - 文章是否可打賞,0否
* @return {string} [].multi_item[].cdn_url - 圖片/視頻地址
* @return {string} [].multi_item[].cdn_url_back
* @return {number} [].multi_item[].cover - 封面圖片地址
* @return {string} [].multi_item[].digest - 文章描述
* @return {number} [].multi_item[].file_id
* @return {string} [].multi_item[].free_content
* @return {number} [].multi_item[].is_new_video
* @return {number} [].multi_item[].need_open_comment
* @return {boolean} [].multi_item[].only_fans_can_comment
* @return {string} [].multi_item[].ori_white_list
* @return {number} [].multi_item[].review_status
* @return {number} [].multi_item[].reward_money
* @return {string} [].multi_item[].reward_wording
* @return {number} [].multi_item[].seq
* @return {number} [].multi_item[].show_cover_pic
* @return {number} [].multi_item[].smart_product
* @return {string} [].multi_item[].source_url - 原文地址
* @return {string} [].multi_item[].title - 文章標題
* @return {array<string>} [].multi_item[].tags - 文章標簽
*/
API.appmsg().then((items) => {
console.log(items);
}).catch(console.error.bind(console));

  

filepage

獲取圖片/語音素材列表

/**
* 獲取圖片/語音素材列表
* @param {number} [type] - 素材類型:圖片素材-2 語音素材-3 默認-2
* @param {number} [begin] - 從第幾條開始 默認-0
* @param {number} [count] - 返回條數 默認-10
* @param {number} [group_id] - 圖片素材專用,分組id 全部圖片-0 未分組-1 文章配圖-3 或者其它你自己新建的分組id
* @return {Promise<array>} - 素材列表
* @return {string} [].cdn_url - 資源地址
* @return {number} [].file_id
* @return {number} [].group_id - 分組id
* @return {string} [].img_format - 圖片類型:png...
* @return {string} [].name - 資源名稱,如:1488631877698.png
* @return {number} [].seq
* @return {string} [].size - 資源大小,如:749.4 K
* @return {number} [].type
* @return {number} [].update_time - 單位:秒
* @return {string} [].video_cdn_id
* @return {string} [].video_thumb_cdn_url
*/
API.filepage().then((files) => {
console.log(files);
}).catch(console.error.bind(console));

  

operate_appmsg

創建圖文素材

/**
* 創建圖文素材
* @param {array} news - 消息列表
* @param {string} news[].title - 文章標題
* @param {string} news[].thumb - 文章縮略圖
* @param {string} news[].description - 描述信息
* @param {string} news[].html - 文章內容
* @param {string} news[].url - 原文地址
* @param {number} [appMsgId] - 圖文素材id,傳此字段表示更新圖文素材
* @return {Promise} appMsgId
*/
API.operate_appmsg(news).then((appMsgId) => {
console.log(appMsgId);
}).catch(console.error.bind(console));

  

batchUpload

批量上傳遠程圖片至公眾號

/**
* 批量上傳遠程圖片至公眾號
* @param {array<string>} imgurls - 遠程圖片地址
*/
API.batchUpload([‘http://wesbos.com/wp-content/uploads/2016/09/dead-zone.png‘]).then((results) => {
// results[0].fileid;
// results[0].cdn_url;
});

filetransfer

上傳單個遠程圖片至公眾號

/**
* 上傳單個遠程圖片至公眾號
* @param {string} imgurl - 遠程圖片地址
*/
API.filetransfer(‘http://wesbos.com/wp-content/uploads/2016/09/dead-zone.png‘).then((result) => {
console.log(result);
});

localUpload

上傳本地圖片至公眾號

/**
* 上傳本地圖片至公眾號
* @param {string} filepath - 本地圖片地址
* @return {Promise<object>} res
* @return {number} res.fileid - 資源id
* @return {string} res.cdn_url - 資源鏈接地址
*/
API.localUpload(‘qrcode-safe.png‘).then((result) => {
console.log(result);
});

uploadimg2cdn

上傳遠程圖片上傳至cdn

/**
* 上傳遠程圖片上傳至cdn
* @param {string} imgurl - 遠程圖片地址
* @return {Promise<string>} - 微信cdn資源地址
*/

preview_post

獲取圖文素材文章臨時預覽鏈接

/**
* 獲取圖文素材文章臨時預覽鏈接
* @param {number} appmsgid - 圖文素材id
* @param {number} [itemidx] - 文章在圖文素材中的索引,從1開始 默認: 1
* @return {Promise<string>} - 文章臨時預覽鏈接
*/
API.preview_post(100000126, 2).then(post_url => {
console.log(post_url);
}).catch(console.error.bind(console));

preview_appmsg

預覽群發消息

/**
* 預覽群發消息
* @param {string} username - 預覽人微信號/QQ號/手機號
* @param {number|string} content - 預覽內容,圖文消息-appmsgid 文字-content 圖片/語音/視頻-fileid
* @param {number} [type] - 消息類型:圖文消息-10 文字-1 圖片-2 語音-3 視頻-15 默認-10
*/
API.preview_appmsg(‘Zaker-yhz‘, 100000126).then(res => {
console.log(‘預覽發送成功‘);
}).catch(console.error.bind(console));

masssend

群發消息

/**
* 群發消息
* @param {number|string} appmsgid - 消息內容,圖文消息-appmsgid 文字-文字內容 圖片/語音/視頻-fileid
* @param {number} [groupid] - 分組id,默認-1 所有用戶
* @param {number} [send_time] - 定時群發,默認-0 不定時群發 定時群發設置定時時間戳(單位秒)
* @param {number} [type] - 消息類型:圖文消息-10 文字-1 圖片-2 語音-3 視頻-15 默認-10
*/
API.masssend(appMsgId).then(() => {
console.log(‘success‘);
}).catch(console.error.bind(console));

  

cancel_time_send

取消定時群發

/**
* 取消定時群發
* @param {number} msgid 群發消息id
*/
API.cancel_time_send(1000000041).then(() => {
console.log(‘success‘);
}).catch(console.error.bind(console));

timesend_list

定時群發消息列表

/**
* 定時群發消息列表
* @return {Promise<array>} msgs - 定時群發消息列表
* @return {number} msgs[].type - 消息類型
* @return {number} msgs[].msgid - 消息id
* @return {object} msgs[].sent_info
* @return {number} msgs[].sent_info.time - 群發時間
* @return {boolean} msgs[].sent_info.is_send_all - 是否群發給所有人
* @return {array} msgs[].appmsg_info - 圖文消息內容
* @return {object} msgs[].text_info - 文字消息
* @return {string} msgs[].text_info.content - 文字消息內容
*/
API.timesend_list().then(msgs => {
console.log(msgs);
});

singlesend

發文本消息給某個用戶

/**
* 發文本消息給某個用戶
* @param {string} tofakeid - 用戶fakeid,可以在公眾號後臺singlesendpage頁面url看到或者消息列表
* @param {string} msg - 消息內容
* @param {string} [replyId] - 回復消息id,可以消息列表看到,可選
*/
API.singlesend(‘osl8HwPBTCsVbquNsnYbUfOQH8sM‘, ‘哈哈哈哈‘, 425131038).then(res => {
console.log(res);
}).catch(console.error.bind(console));

message

獲取公眾號消息列表

/**
* 獲取公眾號消息列表
* @param {number} count - 消息條數
* @param {number|string} [day] - 今天:0 昨天:1 前天:2 更早:3 最近5天:7 已收藏消息:star,默認:0
* @return {array<object>} msgs
* @return {string} msgs[].content - 消息內容
* @return {string} msgs[].date_time - 消息時間
* @return {string} msgs[].fakeid - 用戶fakeid
* @return {number} msgs[].func_flag
* @return {number} msgs[].has_reply
* @return {number} msgs[].id - replyId
* @return {number} msgs[].is_vip_msg
* @return {number} msgs[].msg_status
* @return {array} msgs[].multi_item
* @return {string} msgs[].nick_name
* @return {string} msgs[].refuse_reason
* @return {string} msgs[].source
* @return {string} msgs[].to_uin
* @return {number} msgs[].type
* @return {string} msgs[].wx_headimg_url - 用戶頭像地址
*/
API.message(1).then(msgs => {
console.log(msgs);
}).catch(console.error.bind(console));

  

user_list

獲取公眾號關註用戶列表

/**
* @desc 獲取關註用戶列表
* @return {array<object>} userlist
* @return {string} userlist[].user_openid
* @return {string} userlist[].user_name - 用戶昵稱
* @return {string} userlist[].user_remark - 用戶備註名稱
* @return {array} userlist[].user_group_id - 分組
* @return {number} userlist[].user_create_time - 關註時間,單位:秒
* @return {string} userlist[].user_head_img - 用戶頭像地址
*/
API.user_list().then(res => {
console.log(res);
});

  

user_info

獲取某用戶信息

/**
* 獲取用戶信息
* @param {string} user_openid 
* @return {object} user
* @return {string} user.user_openid
* @return {string} user.user_name - 用戶昵稱
* @return {string} user.user_remark - 用戶備註名稱
* @return {array} user.user_group_id - 分組
* @return {number} user.user_create_time - 關註時間,單位:秒
* @return {string} user.user_head_img - 用戶頭像地址
*/
API.user_info(‘oslHwqwYnw20jnqMca18KET91pa0‘).then(res => {
console.log(res);
});

  

user_info_detail

獲取某用戶詳細信息

/**
* 獲取用戶詳細信息
* @param {string} user_openid 
* @return {object} user
* @return {string} user.user_openid
* @return {string} user.user_city - 用戶城市
* @return {string} user.user_country - 用戶國家
* @return {string} user.user_province - 省份
* @return {string} user.user_signature - 簽名
* @return {number} user.user_comment_cnt - 留言量
* @return {number} user.user_selected_comment_cnt - 精選留言量
* @return {number} user.user_msg_cnt - 消息量
* @return {number} user.user_gender - 性別 0:未知 1:男 2:女
* @return {string} user.user_name - 用戶昵稱
* @return {string} user.user_remark - 用戶備註名稱
* @return {array} user.user_group_id - 分組
* @return {number} user.user_create_time - 關註時間,單位:秒
* @return {string} user.user_head_img - 用戶頭像地址
* @return {number} user.user_in_blacklist - 是否在黑名單
*/
API.user_info_detail(‘oslHwqwYnw20jnqMca18KET91pa0‘).then(res => {
console.log(res);
});

  

qrdecode

二維碼解析

/**
* 二維碼解析
* @param {string} url - 遠程圖片地址/本地圖片路徑
* @return {Promise<object>}
*/
API.qrdecode(‘qrcode-login.png‘).then((result) => {
console.log(result.text);
}).catch(console.error.bind(console));

工具包下載地址:微信公眾平臺模擬登錄自動群發圖文消息工具包下載

微信公眾平臺模擬登錄自動群發圖文消息工具包