网站改版
|
WAP网站制作
|
域名注册
|
虚拟主机
|
服务器
|
海微商
|
海微信
|
海微通
|
无障碍
| 24小时服务电话:13807590485
海南网站建设
海南网站制作
海口网站建设
三亚网站建设
儋州网站建设
五指山网站建设
文昌网站建设
琼海网站建设
万宁网站建设
东方网站建设
定安网站建设
网站首页
网站首页
网站建设
网站建设
微信开发
微信开发
网站推广
网站推广
琼中世纪华联
网站超市
网站超市
客户案例
客户案例
网站模板
网站模板
关于我们
关于我们
无障碍
微信开发
微信系统开发
微信开发功能
公众号基础教程
开发技术资讯
公众号推广营销
客户案例
联系我们
QQ服务群:
28519571
工作时间:
86-0898-31568080
传真号码:
86-0898-31568085
24小时服务:
0138-07590485
您现在的位置: 首页 >> 微信开发 >> 开发技术资讯
开发技术资讯
利用公众平台模拟登录发送微信消息给指定用户
世纪华联 | 2018-01-26 23:54:31 | 阅读:10836
看到微信公众平台,开始有点兴奋,能做个机器人玩玩,随后用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"
}
复制代码
海南网站建设
|
海南网站制作
|
海口网站建设
|
三亚网站建设
|
儋州网站建设
|
五指山网站建设
|
文昌网站建设
|
琼海网站建设
|
万宁网站建设
|
东方网站建设
|
定安网站建设
|
屯昌网站建设
|
澄迈网站建设
|
临高网站建设
|
白沙网站建设
|
昌江网站建设
|
乐东网站建设
|
陵水网站建设
|
保亭网站建设
|
琼中网站建设
|
海口精英网
|
三亚精英网
|
文昌精英网
|
琼海精英网
|
陵水精英网
|
儋州精英网
|
万宁精英网
|
澄迈精英网
|
海微通
合作伙伴
企业发展
企业文化
联系我们
在线订购
网站地图
返回首页
手机版
海口世纪华联科技有限公司2024版权所有 24小时服务热线:13807590485 欢迎来电咨询
地址:海南省.海口市.海甸二东路环惠大厦6楼(南宝路明都大厦107#) 公司电话:0898-31568080 31568060 QQ:85398489
全国合作联盟分布:海南海口 四川成都 湖北武汉 湖南长沙 安徽合肥 广东深圳 山西太原 西藏拉萨
技术服务: E_mail:server@hnzlweb.com 服务订购:E_mail:server@hnzlweb.com 在线客服邀请
琼ICP备10201086号-15
推广关键字:
琼中网站建设
,
琼中网站制作
,
琼中网站开发
,
琼中微信开发
,
琼中微信公众号开发
,
琼中微信公众号代运营
,
琼中模板网站制作
,
琼中网页设计
,
琼中网络公司