Java模拟登录微信平台,主动推送消息给用户,自动绑定url、token等
来源:互联网 发布:大阪旅游攻略 知乎 编辑:程序博客网 时间:2024/04/30 08:09
一、简要说明
在博文《Java模拟登录微信公众平台,主动推送图文消息给用户》中提到使用Java语言登录微信公众平台,然后发送图文消息给用户,基本可以符合使用要求,但是在今年10月23日,微信公众平台的界面有所变化,所以,上一篇博文的代码不再适用,很多朋友留言,不能使用了怎么办,这篇文章针对新版本做了处理,并且加入了新的功能,代码上要感谢trprebel这位朋友。
二、代码功能和要求
*.new Weixin()对象,先登录再取粉丝数和者发消息;
*.发消息需要设置post参数中的content;
*.内容中的超链接可以直接发送不用使用标签;
*.经过我(trprebel)修改之后,此份代码可在2013年11月之后使用;
*.我只做了获取粉丝列表和发送消息,其他部分未做;
*.理论上可以获取到粉丝的地址,签名等一切你登陆可以得到的信息;
*.另外可能需要你在本机先登陆过至少一次微信公众平台获取SSL证书;
*.此份代码作者较多,函数前面都有作者名,我只修改了登陆,获取粉丝列表和发送消息;
*.其他代码可能已经不能用了但我并没有删除,方便大家扩展,我做的也比较粗糙,没整理;
*.另外,腾讯3天之内又加了一条限制,粉丝24小时之内没有主动说话,微信公众平台不能主动与其说话,官方平台登陆也不行;
使用到的库:commons-codec-1.3.jar、commons-httpclient-3.1.jar、commons-lang.jar、commons-logging-1.0.4.jar、fastjson-1.1.15.jar、gson-2.2.4.jar、httpclient-4.1.3.jar、httpcore-4.1.4.jar、jsoup-1.5.2.jar
环境:JDK1.6
三、代码下载
使用的库请自己下载,源代码如下:
SimulateWechatLogin.zip
如果使用有任何的问题,请直接回复博文即可...
四、核心代码和说明
Weixin.java模拟请求的链接及结构
public
final
static
String HOST =
"http://mp.weixin.qq.com"
;
public
final
static
String LOGIN_URL =
"http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"
;
public
final
static
String INDEX_URL =
"http://mp.weixin.qq.com/cgi-bin/indexpage?t=wxm-index&lang=zh_CN"
;
public
final
static
String SENDMSG_URL =
"https://mp.weixin.qq.com/cgi-bin/singlesend"
;
public
final
static
String FANS_URL =
"http://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0"
;
public
final
static
String LOGOUT_URL =
"http://mp.weixin.qq.com/cgi-bin/logout?t=wxm-logout&lang=zh_CN"
;
public
final
static
String DOWNLOAD_URL =
"http://mp.weixin.qq.com/cgi-bin/downloadfile?"
;
public
final
static
String VERIFY_CODE =
"http://mp.weixin.qq.com/cgi-bin/verifycode?"
;
public
final
static
String POST_MSG =
"https://mp.weixin.qq.com/cgi-bin/masssend?t=ajax-response"
;
public
final
static
String VIEW_HEAD_IMG =
"http://mp.weixin.qq.com/cgi-bin/viewheadimg"
;
public
final
static
String GET_IMG_DATA =
"http://mp.weixin.qq.com/cgi-bin/getimgdata"
;
public
final
static
String GET_REGIONS =
"http://mp.weixin.qq.com/cgi-bin/getregions"
;
public
final
static
String GET_MESSAGE =
"http://mp.weixin.qq.com/cgi-bin/getmessage"
;
public
final
static
String OPER_ADVANCED_FUNC =
"http://mp.weixin.qq.com/cgi-bin/operadvancedfunc"
;
public
final
static
String MASSSEND_PAGE =
"http://mp.weixin.qq.com/cgi-bin/masssendpage"
;
public
final
static
String FILE_MANAGE_PAGE =
"http://mp.weixin.qq.com/cgi-bin/filemanagepage"
;
public
final
static
String OPERATE_APPMSG =
"https://mp.weixin.qq.com/cgi-bin/operate_appmsg?token=416919388&lang=zh_CN&sub=edit&t=wxm-appmsgs-edit-new&type=10&subtype=3&ismul=1"
;
public
final
static
String FMS_TRANSPORT =
"http://mp.weixin.qq.com/cgi-bin/fmstransport"
;
// public final static String CONTACT_MANAGE_PAGE =
// "http://mp.weixin.qq.com/cgi-bin/contactmanagepage";
public
final
static
String CONTACT_MANAGE_PAGE =
"http://mp.weixin.qq.com/cgi-bin/contactmanage"
;
public
final
static
String OPER_SELF_MENU =
"http://mp.weixin.qq.com/cgi-bin/operselfmenu"
;
public
final
static
String REPLY_RULE_PAGE =
"http://mp.weixin.qq.com/cgi-bin/replyrulepage"
;
public
final
static
String SINGLE_MSG_PAGE =
"http://mp.weixin.qq.com/cgi-bin/singlemsgpage"
;
public
final
static
String USER_INFO_PAGE =
"http://mp.weixin.qq.com/cgi-bin/userinfopage"
;
public
final
static
String DEV_APPLY =
"http://mp.weixin.qq.com/cgi-bin/devapply"
;
public
final
static
String UPLOAD_MATERIAL =
"https://mp.weixin.qq.com/cgi-bin/uploadmaterial?cgi=uploadmaterial&type=2&token=416919388&t=iframe-uploadfile&lang=zh_CN&formId=1"
;
/**
* 登录,登录失败会重复请求登录
*/
public
void
login() {}
/**
* 发送登录信息,记录cookie,登录状态,token等信息
*/
private
boolean
_login() {}
/**
* 从登录成功的信息中分离出token信息
*/
private
String getToken(String s) {}
/**
* 获取首页
* @throws HttpException
* @throws IOException
*/
public
void
index()
throws
HttpException, IOException {}
/**
* 登出操作
* @throws HttpException
* @throws IOException
*/
public
void
logout()
throws
HttpException, IOException {}
/**
* 获取验证码
* @throws HttpException
* @throws IOException
*/
public
InputStream code()
throws
HttpException, IOException {}
/**
* 获取粉丝列表,返回粉丝数量,出错则返回-1
*/
public
int
getFans() {}
/**
* 从返回文本中提取粉丝数量
*/
private
int
parseFansCount(String text) {}
/**
* 解析粉丝列表,将粉丝列表存入List<fan>
*/
private
int
parseFans(String text) {}
/**
* <strong>群发消息</strong>
* 返回码说明
* 0:发送成功
* 64004:今天的群发数量已到,无法群发
* -20000:请求被禁止,请仔细检查token是否合法
* 可通过msgSendCode取得发送状态码
*/
public
boolean
msgSend(MsgForm form, MsgType type) {}
/**
* 向粉丝发送消息,默认发送第二个粉丝,想不受限制的群发可以循环向粉丝列表中的粉丝发送消息
*/
public
boolean
sendMsg(
int
i) {}
public
void
updateImg(ImgFileForm form) {}
/**
* 页面跳转
*/
public
void
redirect(String url) {}
//使用样例说明
public
static
void
main(String[] args) {
String LOGIN_USER =
"knight.ding@gmail.com"
;
// 此为上一任作者的用户名和密码,截止到我最后用发现还能用
String LOGIN_PWD =
"AAbb1122"
;
Weixin wx =
new
Weixin(LOGIN_USER, LOGIN_PWD);
wx.login();
wx.getCookiestr();
// ImgFileForm form = new ImgFileForm();
// form.setUploadfile(new File("D:Dataimage4.jpg"));
// wx.updateImg(form);
System.out.println(
"粉丝数:"
+ wx.getFans());
wx.sendMsg(
1
);
// 像好友列表中的第几个好友发消息,从0开始
}
---
Enjoy~~~如果能帮助到你,请回复博文或者分享给他人,谢谢~
转载出处:【微信公众平台改版后】Java模拟登录微信平台,主动推送消息给用户
- Java模拟登录微信平台,主动推送消息给用户,自动绑定url、token等
- 【微信公众平台改版后】Java模拟登录微信平台,主动推送消息给用户
- 微信公众平台主动给用户推送消息,群发消息解决方案收集
- 微信公众平台开发:高级篇(利用公众平台模拟登录发送微信消息给指定用户)
- 微信企业号给关注的用户主动发送推送消息
- 【fastweixin框架教程6】微信企业号给关注的用户主动发送推送消息
- PHP 模拟登陆微信公众平台,一键绑定URL和TOKEN的思路
- [微信公众号]php版模拟登录,向指定用户推送消息目前
- 微信开发 获取Token、主动给企业成员发送消息
- 微信-获取Token,主动给企业成员发送消息(3)
- 微信公众帐号给指定用户推送消息
- 微信公众平台向特定用户推送消息
- 微信公众平台向特定用户推送消息
- 微信公众平台向特定用户推送消息
- 微信公众平台向特定用户推送消息
- Java企业微信开发_05_消息推送之发送消息(主动)
- Java企业微信开发_04_消息推送之发送消息(主动)
- 模拟微信平台token验证
- Java排序算法2:选择排序
- poj 2109 高精度幂和二分查找
- 类似微信陌陌app百万级并发系统源码转让
- 数字图像处理的就业前景
- Android Emulator and Weinre
- Java模拟登录微信平台,主动推送消息给用户,自动绑定url、token等
- Python Twisted介绍
- CentOS-min 操作记录(5)-配置自己的VPN
- U盘UEFI启动制作方法
- DIV滚动条一直居底
- std::string用法
- java 设置环境变量
- 移动硬盘数据怎么恢复?
- iOS App所有Icon