博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信公众平台模拟登录自动群发图文消息工具包
阅读量:5146 次
发布时间:2019-06-13

本文共 9402 字,大约阅读时间需要 31 分钟。

无需微信认证即可实现微信公众号自动群发图文消息。

使用

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} 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
} - 素材列表* @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
} [].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
} - 素材列表* @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
} 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} 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
} - 微信cdn资源地址*/

preview_post

获取图文素材文章临时预览链接

/*** 获取图文素材文章临时预览链接* @param {number} appmsgid - 图文素材id* @param {number} [itemidx] - 文章在图文素材中的索引,从1开始 默认: 1* @return {Promise
} - 文章临时预览链接*/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
} 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} 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} 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}*/API.qrdecode('qrcode-login.png').then((result) => {console.log(result.text);}).catch(console.error.bind(console));

 

工具包下载地址:

转载于:https://www.cnblogs.com/slim/p/8954523.html

你可能感兴趣的文章
Vue中引入TradingView制作K线图
查看>>
爱历史 - 朝代歌
查看>>
【笔记】Cocos2dx学习笔记
查看>>
PHP设计模式之:单例模式
查看>>
c++输出缓冲区刷新
查看>>
Linux查看CPU和内存使用情况总结
查看>>
session丢失问题
查看>>
Python 批量修改root密码
查看>>
ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1
查看>>
WEB服务器:Apache、Tomcat、JBoss、WebLogic、Websphere、IIS的区别与关系
查看>>
软件工程 speedsnail 冲刺7
查看>>
虚拟机CentOS设置IP
查看>>
Django之ORM多对多表创建方式,AJAX异步提交,分页器组件等
查看>>
SqlServer查询表名的备注(查询表名描述 MS_Description)
查看>>
Set集合HashSet,TreeSet
查看>>
去哪网实习总结:递归构建“流程运行顺序”的XML文件(JavaWeb)
查看>>
机器学习笔记十三:Ensemble思想(上)
查看>>
Unity3D中组件事件函数的运行顺序
查看>>
启动tomcat时出现乱码——淇℃伅(转)
查看>>
9.1 正睿提高2
查看>>