网站改版
|
WAP网站制作
|
域名注册
|
虚拟主机
|
服务器
|
海微商
|
海微信
|
海微通
|
无障碍
| 24小时服务电话:13807590485
海南网站建设
海南网站制作
海口网站建设
三亚网站建设
儋州网站建设
五指山网站建设
文昌网站建设
琼海网站建设
万宁网站建设
东方网站建设
定安网站建设
网站首页
网站首页
网站建设
网站建设
微信开发
微信开发
网站推广
网站推广
白沙世纪华联
网站超市
网站超市
客户案例
客户案例
网站模板
网站模板
关于我们
关于我们
1
2
3
4
Previous
Next
无障碍
微信开发
微信系统开发
微信开发功能
公众号基础教程
开发技术资讯
公众号推广营销
客户案例
联系我们
QQ服务群:
28519571
工作时间:
86-0898-31568080
传真号码:
86-0898-31568085
24小时服务:
0138-07590485
您现在的位置: 首页 >> 微信开发 >> 开发技术资讯
开发技术资讯
利用公众平台模拟登录发送微信消息给指定用户
世纪华联 | 2018-01-26 23:54:31 | 阅读:13362
看到微信公众平台,开始有点兴奋,能做个机器人玩玩,随后用Node.js写了一个,觉得其实这没什么意思,很快就觉得腻了,于是有了做发送微信接口的想法。首先要做的我们就要模拟公众平台的登陆。对于微信的这些lib,当然不能直接写在routes里面,那要怎么办呢?没错,就要封装起来,方便复用。
你可以打开控制台看到公众平台的登录请求,还有所需的参数,其中密码它是用它本身的md5进行加密的,那么我们需要做的只是将它copy过来放在一个 helpers/wx/md5.js文件里就可以直接用了,以下是微信公众平台解析后格式化的js提交代码:
submit: function() {
if (!n()) return;
var e = d.getVal();
t.post("/cgi-bin/login?lang=zh_CN", {
username: e.account,
pwd1: t.md5(e.password.substr(0, 15)),
pwd2: t.md5(e.password),
imgcode: f.data("isHide") ? "": e.verify,
register: e.isRegister,
f: "json"
},
复制代码
我们要建立一个login的方法:
request = require 'superagent'
require __basename + '/helpers/wx/md5'
config = require __basename + '/config/config'
module.exports =
login: (fn) ->
wx_usr = config.wx.user
wx_pwd = md5 config.wx.pwd.substr(0, 16)
request
.post('http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN')
.type('form')
.send(
username: wx_usr
pwd: wx_pwd
imgcode : ''
f : 'json'
register : 0
)
.end (res) ->
//在这里你已经成功获取cookie了
复制代码
但是经过分析我想你会发现,这里的cookie其实并非你想要的cookie,因为它包含一些没用的信息Path=,我们设置cookie的时候,事实上 是不能用直接设置这样的cookie,应该是一个cookie里面不应该有其他的东西,而分号后面的path应该将它去掉,这里是返回的结果:
[
"mp_user=xxxxxx; Path=/",
"mp_sid=NlJ2Tm5hb1NXRGxOU3V1MzF2a25tSFVWRHhTNkhwek1nMXlEOVZzMnZMUG1lZ29nSkdENGt3WlgwUjBJZnhydndYNkZSd0ZsaHRHdEozSHBIa3QwT3FWTmdXc3RxVFhYUDBCR3dnWkxIRWVvRlZObG15UC83SzU1aEZPZWpocU8=; Path=/"
]
复制代码
以下是完整的login代码:
login: (fn) ->
wx_usr = config.wx.user
wx_pwd = md5 config.wx.pwd
request
.post('http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN')
.type('form')
.send(
username: wx_usr
pwd1: wx_pwd
pwd2: wx_pwd
imgcode : ''
f : 'json'
)
.end (res) ->
cookie = ''
for rs in res.header['set-cookie']
cookie += rs.replace(/Path=\//g, '')
fn null, cookie
复制代码
在这里,我们已经完成登录的操作了,接下来,我们要做的是进行发送,在发送的时候,要把这个cookie设置在请求的地址中,接下来的代码比较简单:
sender: (options, fn) ->
msg = options.msg
fakeid = options.fakeid
unless msg
fn error: 'missing msg'
return
unless fakeid
fn error: 'missing fakeid'
return
psotParams =
type: 1
content: msg
error: false
tofakeid : fakeid
ajax : 1
request
.post('http://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN')
.type('form')
.send(psotParams)
.set('Cookie', options.cookie)
.end (res) ->
fn null, JSON.parse res.text
复制代码
这里,我们已经能完全发送了,因为返回的结果是一个json,所要最好先JSON.parse一下,里面的成功判断大家可以加上,返回的接口有个叫ret的参数,0为发送成功。
{
ret: "0",
msg: "ok"
}
复制代码
海南网站建设
|
海南网站制作
|
海口网站建设
|
三亚网站建设
|
儋州网站建设
|
五指山网站建设
|
文昌网站建设
|
琼海网站建设
|
万宁网站建设
|
东方网站建设
|
定安网站建设
|
屯昌网站建设
|
澄迈网站建设
|
临高网站建设
|
白沙网站建设
|
昌江网站建设
|
乐东网站建设
|
陵水网站建设
|
保亭网站建设
|
琼中网站建设
|
海口精英网
|
三亚精英网
|
文昌精英网
|
琼海精英网
|
陵水精英网
|
儋州精英网
|
万宁精英网
|
澄迈精英网
|
海微通
合作伙伴
企业发展
企业文化
联系我们
在线订购
网站地图
返回首页
手机版
海口世纪华联科技有限公司2025版权所有 24小时服务热线:13807590485 欢迎来电咨询
地址:海南省.海口市.海甸二东路环惠大厦6楼(南宝路明都大厦107#) 公司电话:0898-31568080 31568060 QQ:85398489
全国合作联盟分布:海南海口 四川成都 湖北武汉 湖南长沙 安徽合肥 广东深圳 山西太原 西藏拉萨
技术服务: E_mail:server@hnzlweb.com 服务订购:E_mail:server@hnzlweb.com 在线客服邀请
琼ICP备10201086号-15
推广关键字:
白沙网站建设
,
白沙网站制作
,
白沙网站开发
,
白沙微信开发
,
白沙微信公众号开发
,
白沙微信公众号代运营
,
白沙模板网站制作
,
白沙网页设计
,
白沙网络公司
客
服
在线客服
综合咨询
客服咨询
业务咨询
售后投诉
扫描直接联系
客户项目管理系统
公司员工OA系统
在线订购产品
人才招聘
微信公众平台开发
微信商
更新
网站制作
网站空间服务器
域名注册
微企秀.品牌展
办公:0898-31568060
专线:13807590485