TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。6 m2 h5 R3 _) f0 H+ j
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。" ~ m9 n; f2 k7 A: a( G0 K
实现功能:
# P& q% U9 b# M3 t. D一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。) g) [; |% \9 M4 k
二:实现QQ号码吉凶查询 输入#QQ+你的号码。
2 h' _! |- o8 v1 f0 B* l& o三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
/ N0 Q: u# m' L- v; |: w四:用户可以随意修改源码if判断加入自己的message。5 Z% r6 t4 x4 U" j( r0 U/ N( t
代码展示:
" g$ Y3 F9 U5 {% J$ @7 OWebServiceClient.java
$ b- P# `! }2 {7 I- /**
2 B' @' G$ t2 [8 y* B# S( c. L - * Copyright (c) 2010-2013 by 科帮网7 @# g4 t. A/ L7 K% l
- * All rights reserved.
$ W' F( T0 S) K- d - */* n: M! b; a* D Z5 p% _7 _
- package webService.client;- Y, h, u' o$ u6 N/ j0 j
5 T) H U5 o# W- e, K! t" X L- import java.util.ResourceBundle;
* f: U: I5 e1 X$ d
' K% t* h$ \; m$ ^; C* s- import javax.xml.namespace.QName;
7 Q9 a8 s2 L: ^3 x - % S: E- I7 p) Y! T6 h0 W$ ~
- import org.apache.axis2.AxisFault;
0 W% [3 P" e% g. l# T( P3 [+ x0 K - import org.apache.axis2.addressing.EndpointReference;
: X3 Y+ k m& [+ A - import org.apache.axis2.client.Options;% @/ U& v o% L b) R: C" ?. K
- import org.apache.axis2.rpc.client.RPCServiceClient;8 l/ Q+ {3 e6 d. }1 J, d+ S
- " _ v2 M l$ ?3 E# Z
- import util.Constants;# {% R% q5 _9 U2 P1 ~; b6 K Z
- public class WebServiceClient {5 N! p9 @' F4 g- E* d& J
6 \, ], c7 v2 Q2 P1 C4 x- private static String SERVICE_URL = "";' z( ~7 m' K" A# ]
- private static String TARGET_NAMESPACE = "";: Q7 T d& x1 Z* c" ?
- & \) }* A' {. x4 B5 y- E% Y4 F
- static{
! p u5 l4 ~( y& w - ResourceBundle resource = ResourceBundle.getBundle("config");
" Y/ Y6 X k/ ? - SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);7 f* T2 X8 ?, T
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
0 `! R1 _$ F! g) _ - }7 n) Y3 F5 j- K5 l3 a* S5 `0 c
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
* \( w3 D1 p3 t4 X: K4 \3 j0 f7 m: c - EndpointReference targetEPR = new EndpointReference(serviceUrl);
( F5 L5 B1 e6 q4 K' Y d p, a8 P8 J6 ` - RPCServiceClient sender = new RPCServiceClient();+ T/ }* `0 n- [4 Y {$ z
- Options options = sender.getOptions();
6 E+ E5 a$ I8 x7 Z/ U, O- r: n - options.setTimeOutInMilliSeconds(20000L);//超时时间20s- L! K! u+ T, l- S! F
- options.setTo(targetEPR);; L$ p# r- Y6 b' c' o3 ?3 g: |4 V& Y, r
- return sender;- u4 x' z$ n& S9 p
- }
* y# }# e) w1 N' ~, j( E& n - public String listSchoolGroup(String text) throws AxisFault{* D) \3 e" C8 w. i
- RPCServiceClient sender = initClient(SERVICE_URL);
! H2 d3 C8 v v7 n9 x! O2 G# t w2 f% | - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
/ ~! @9 ]$ x+ s! \ - Object[] param = new Object[]{text};! f1 u/ i# \0 O5 ?$ P$ F
- Class[] types = new Class[]{String.class};) u6 Q0 N3 O/ G4 b
- Object[] response = sender.invokeBlocking(qname, param, types);
: v3 L, ?9 y5 K9 F8 I - String result = (String)response[0];
! M, N, _3 p" R5 C1 N1 W6 T - return result;
' m0 f- y5 J1 `& L/ R - }( g* \- `: \; y3 i% b6 N
- }: ?" K) t! E& p4 a+ Z
复制代码 WSServer.java
1 f# X0 i; M3 o% V, O, ?: H- G2 q- package webService.server;
' V8 k! F( O- z" W
/ P' R6 J# \' Z4 F2 u0 p& v- import util.Constants;0 i* y- \3 P. _ V7 S
- import util.Qq; E6 k- L& M0 a( `! I2 I# P; J
- import util.SimsimiTools;
* q2 {" K) L; Q' { - import util.Weather;
$ g6 H) E0 u' W/ ?: M& f9 X
6 R) q n- a+ @, d1 ^* C- `: c- public class WSServer {, h* B1 L; @4 u* w$ f4 R' f
- public String getMessage(String text) throws Exception{& ?! P1 t7 G7 f% {: Q. b
- String message ="";) V0 p, C8 X6 M/ w4 f8 [8 `) @3 V
- if(text.startsWith("#")){
5 d. O& `: _/ U2 N: E' J/ g5 g - String str = text.substring(1, 3);
! f! H0 z- j j. h( }+ ~4 E - if(Constants.WEATHER.equals(str)){5 c) D1 I8 t! o! F! C- `
- //天气查询* c6 p0 F6 O- h% H4 y+ i/ B. S
- String cityName = text.substring(3, text.length());2 c" W- W; f6 r
- message = Weather.Weather(cityName.trim());
2 u3 ]2 o$ E% O8 ~1 j - }else if(Constants.YUANMA.equals(str)){
! O, a* s6 y$ @; E% R - message = "源码网 http://www.52itstyle.top";
: v9 p# z7 }( _0 A: Q* d - }else if("QQ".equalsIgnoreCase(str)){
; S0 b3 d1 w) r* H5 P \5 X/ C( p - //QQ吉凶查询
6 J6 \( m9 n! f+ `' D - String qq = text.substring(3, text.length());
' X6 j6 z/ J$ [! i1 I9 W$ ^6 V. l - message = Qq.qq(qq.trim());" u3 j: C" r* g
- }else{& H* g7 g* `$ ]; s+ B& z" F/ `) ?5 G
- //小黄鸡
0 B4 d3 q! J' g8 o1 C5 K - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));5 V# ^" Y ?+ ~. q9 ?9 F; T1 J, l- e& G0 E
- }
' @( J/ \: ]$ a& p. U, o - }else{1 y2 b, h( B( T. O) k- o
- if(text.contains("QQ")||text.contains("qq")){
' ?! B' X: E# d( D7 J/ d( V - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";9 e/ n' m% n+ V
- }; i( u# D7 g+ ^3 q
- if(text.contains("天气")){) g9 d1 L3 j; ]2 z9 k
- message = "天气查询格式 #天气+你所在城市";
W% k( ^$ E" `/ R. n/ F - }7 z# f5 e8 F+ M$ I' s- y" N
- }8 q$ z9 A; p0 K7 r5 J6 k& ^$ I) p
- return message;7 X3 |9 d7 r7 Z! ?) K
- }
( [ s1 _+ n K, r4 l - }
1 P8 R) d. }4 Q9 |
复制代码 f$ i- {. ?" }" T5 A: ~6 @% b9 I8 B( O
项目源码下载地址:java版QQ机器人调用接口源码
4 g! y l& S) \8 k+ q. X: q6 e1 Q: J8 H% l# b6 ]7 f7 ~* f* y* e
+ H: W1 m6 e8 A
4 y1 W# k" Y, k# i! h5 q* Z$ \* U |
|