TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
, E' |( E: H; p% I+ C本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。% p# J6 W4 G: R T- w3 i# `
实现功能:
# ?+ @! N1 S! k ] Z& T一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
' m% c' V/ {( s" ?6 ~二:实现QQ号码吉凶查询 输入#QQ+你的号码。
. r s- b2 W( T( ]/ b: O% d) J0 g0 h三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。4 l0 C& z- ?* @; }; P0 v
四:用户可以随意修改源码if判断加入自己的message。
2 R G5 y. P& i/ Q. h0 N8 A代码展示:. s, F9 [: [. |7 D0 h( Q- J
WebServiceClient.java
% f! U, G& o7 w7 A: a7 t. L( [! c- /**
7 I H4 j: z. }$ M" \# d - * Copyright (c) 2010-2013 by 科帮网4 D, N; j1 v! k4 j- c
- * All rights reserved.% f) g# G% a. {/ d. X0 m
- *// T: Z# S- d* l' ], a
- package webService.client; P: |' a8 C8 O* }) L2 G& S; j7 }
- 1 }: C0 l' h$ |" r" m
- import java.util.ResourceBundle;+ A, U- h3 U$ M4 V6 X4 E+ @
- 5 j' F6 h9 F7 N$ m4 s
- import javax.xml.namespace.QName;3 }" f' q9 G$ u4 K1 D
3 W* t1 s4 l4 _8 g% i4 L* B- import org.apache.axis2.AxisFault;0 r# Y7 a+ T5 l$ v4 ^' T+ Y
- import org.apache.axis2.addressing.EndpointReference;
& h, k$ v/ L6 l1 N+ _- q4 n3 c - import org.apache.axis2.client.Options;
* ^& d5 g0 M X8 D" Z - import org.apache.axis2.rpc.client.RPCServiceClient;9 i B# m, ]' A$ ]
- # _& @* b& }' \5 F& T
- import util.Constants;
# H7 s5 [' _; ?& [. u3 _- D - public class WebServiceClient {/ f" w' O Y* ]6 o% K1 ^
; {! P$ B2 C$ t2 F- private static String SERVICE_URL = "";3 G- y! l; p4 _) W4 A; H
- private static String TARGET_NAMESPACE = "";1 u% g* U5 R2 C3 u- e
3 w% S% b, m7 u3 T- static{
% w* O# C3 g6 [# n M1 }' K6 V - ResourceBundle resource = ResourceBundle.getBundle("config");2 X) Q; V8 [9 n2 _( q
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
0 l9 ]0 h; {: X - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
+ Y `# h8 I3 {0 Y/ R) W4 ~ - }3 \# _: @; |& L% h- X' {
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{# ?, o" I! @* q+ d; B$ `+ S, A9 N
- EndpointReference targetEPR = new EndpointReference(serviceUrl);
5 G3 [* Y6 V8 t: a - RPCServiceClient sender = new RPCServiceClient();% F8 ^* W: ]% g1 [6 x! o
- Options options = sender.getOptions();
6 @5 R9 ?3 }4 Y- E% K& c) w - options.setTimeOutInMilliSeconds(20000L);//超时时间20s) ~: j. {8 K. M( E
- options.setTo(targetEPR);
( `' e+ L1 x: c- _ u7 S8 |1 W - return sender;# \* X: ?2 U) E+ e- v
- }
2 |- l" a2 a3 K( ^: y' | - public String listSchoolGroup(String text) throws AxisFault{% H! ]7 g0 m' r3 V9 M; T
- RPCServiceClient sender = initClient(SERVICE_URL);, {2 d" J2 U/ D9 h6 G
- QName qname = new QName(TARGET_NAMESPACE, "getMessage");! Q: [$ ^% J. M* r# W7 B
- Object[] param = new Object[]{text};5 w' d* G, i' T) \6 s/ ]
- Class[] types = new Class[]{String.class};' _% e" k7 F; e% l! z# F9 m
- Object[] response = sender.invokeBlocking(qname, param, types); p3 _& G4 ^% L& z; m$ v
- String result = (String)response[0];$ ^* Y! U) o2 t8 M) S. x
- return result;
0 N- F- A: J0 J6 [9 x - } z" d' W! S! D5 O& B$ C' _- c* j# ^3 N
- }2 `+ t# D+ f2 s6 q" G
复制代码 WSServer.java7 q# _) j" O! {! G% H' i! U$ W
- package webService.server;6 ]/ O) X2 H) C/ g2 o
) w h. V g6 W3 Z3 ?% G+ Z- import util.Constants;
( `* o5 T9 ?* O; e( C - import util.Qq;: l; s. A0 `5 A% l* C3 r
- import util.SimsimiTools;
) h1 G: }# ~! K( J9 P" x+ f8 o - import util.Weather;1 r5 j/ T2 h) Y) X! j3 ]
- 8 h' A( M9 T6 H- m3 p5 s( i1 E7 Y) M
- public class WSServer {8 |. m1 e, @4 U! ]
- public String getMessage(String text) throws Exception{
5 E1 X8 i: J" d% P/ A - String message ="";% K+ U3 k8 \* F3 b
- if(text.startsWith("#")){
5 c& k& M) I8 Y# L# o6 T- ` - String str = text.substring(1, 3);6 m9 `/ a: @6 u3 v- a5 Z
- if(Constants.WEATHER.equals(str)){5 \) J& X5 ~3 W1 B' f
- //天气查询
0 ]3 u$ e. r; Z5 @4 d" B% V. T/ [/ Z - String cityName = text.substring(3, text.length());
3 s4 }# b8 ?+ T; a# h( h/ C - message = Weather.Weather(cityName.trim());
; d( D3 J5 H5 M( n( w - }else if(Constants.YUANMA.equals(str)){
6 k5 [! a( |( K$ f# ?8 b - message = "源码网 http://www.52itstyle.top";
* v* C- N+ m; }8 e5 a - }else if("QQ".equalsIgnoreCase(str)){) {# b7 r& P- t; ]; o M# _
- //QQ吉凶查询, C! ]8 e& k& }( |) k! H
- String qq = text.substring(3, text.length());. C0 b e, X8 x* G1 m9 e8 ^
- message = Qq.qq(qq.trim());
1 e3 B. t, J0 Y# c) W - }else{
4 ?2 ~! g( {5 R. I5 u0 C3 S - //小黄鸡2 R% C' J8 G, e& }
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));6 L: a7 v8 O' i9 o7 J; t2 B
- }
- f4 j2 ^$ r7 k, L - }else{4 f2 b9 i# C0 W* ^. n
- if(text.contains("QQ")||text.contains("qq")){
- t/ ]6 J% u% m - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";4 Y+ ~$ }+ N7 y& n& f' m
- }
( J! r \+ c$ _, i" K c, Z$ ~ - if(text.contains("天气")){
2 n! W X3 o0 i8 p- c - message = "天气查询格式 #天气+你所在城市"; W- N/ a- ] e0 v" w
- }9 m" t4 a( Z x% h+ c. m
- }
" @* z1 d, A3 H, |' x - return message;
) G5 t- `5 d+ \+ ]& T2 }5 T - }- z% n( ?" x/ b/ M/ K
- }
# ]7 w' r" i3 r+ ~& z
复制代码 ' K9 @0 ^2 b" V& J0 g
项目源码下载地址:java版QQ机器人调用接口源码
5 R% X% W* N5 q$ r3 a0 M
2 `+ q* Q. w; u5 u: R- M* y( {2 x* I' p+ D
. D3 e. W1 s5 k! R+ @1 g
|
|