TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。' t+ m* `$ o& s0 W2 Q& h
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。2 C+ v# l: {5 d
实现功能:6 B& K( X0 i) M1 B" }) T4 o
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。' H8 O6 J6 h8 J% g
二:实现QQ号码吉凶查询 输入#QQ+你的号码。; t* s; B7 K; a/ G
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
1 m7 r3 v1 F2 t" l四:用户可以随意修改源码if判断加入自己的message。: v, H$ [+ @0 k
代码展示:7 X. P: g7 N1 b4 _7 _
WebServiceClient.java. `$ C. {# Q1 d8 B6 P4 _
- /**
) K1 p# l( ] v- t+ ~" c! d- l - * Copyright (c) 2010-2013 by 科帮网& q' a( L1 R0 Z- j' d# i! ]
- * All rights reserved.
; h3 C+ Y4 ]5 C* j) A7 S2 p S - */
6 _9 w" ]& A, D1 `0 d- M/ y* \4 I - package webService.client;$ S: n7 X) s7 @$ g. C( {! d0 v: o
- ' N1 O2 y8 H9 z! M& E8 S5 _
- import java.util.ResourceBundle;, @. B K$ P. m6 _
7 R$ E' I$ ]! e- W5 u- import javax.xml.namespace.QName;
% g! F% ~9 M: f0 y8 ]0 l9 X
8 }2 O" y4 W# }/ E! D* L9 H- import org.apache.axis2.AxisFault;$ K g- N6 E8 ^
- import org.apache.axis2.addressing.EndpointReference;
8 A$ G4 @- M/ n4 M1 O2 g4 f" Y - import org.apache.axis2.client.Options;8 H, h4 M1 q+ v3 o8 G& A' Z9 ^, k) v2 ~
- import org.apache.axis2.rpc.client.RPCServiceClient;
9 ~2 x2 v V0 \+ l
: H" k; L# H" N/ Z- import util.Constants;
" b N2 y8 ]. t1 e - public class WebServiceClient {
" @3 Z, P1 J6 r) p* K; x/ ~ - " [; P* {8 `" } _# d$ v+ q3 u
- private static String SERVICE_URL = "";: d5 m. Y1 w% k
- private static String TARGET_NAMESPACE = "";' Y4 O5 G/ t' y4 D' ~
2 e2 o- Y) m) u" o- static{
: ~) Y" h& J3 s4 ^2 f7 a- ?7 A - ResourceBundle resource = ResourceBundle.getBundle("config"); S) q1 I8 i- C3 N/ P% t% ~
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
! t, `9 S) d! |) u A& R - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
/ T4 n4 K, T9 E. X( W _5 Z1 u* m - }
* L) `$ P7 v) a" U$ h( _- `( Z' j - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{8 ]9 z. y# a% Z" o$ q. \4 o7 L" `
- EndpointReference targetEPR = new EndpointReference(serviceUrl);+ @7 S. y0 I) x
- RPCServiceClient sender = new RPCServiceClient();
; g$ I0 s) A X - Options options = sender.getOptions();
( @! ^5 ^- i* N - options.setTimeOutInMilliSeconds(20000L);//超时时间20s
4 t% P8 O4 x, @6 U& q - options.setTo(targetEPR);: X1 f2 e0 a( ~1 y; W! H" ]+ j
- return sender;& v1 C# k% ]0 d* b4 n0 f P
- }
% `' P, B- Q7 z9 x# z - public String listSchoolGroup(String text) throws AxisFault{1 w2 T' \; T3 O: H1 h6 O2 {
- RPCServiceClient sender = initClient(SERVICE_URL);
0 k) n. ?1 l. l8 ]6 i/ Y! h; e - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
3 x- g c& O9 V; _' g: y, i - Object[] param = new Object[]{text};
( k# K6 T" k8 [2 V+ F - Class[] types = new Class[]{String.class};$ F3 \( [" v2 T) J4 ^6 W8 u
- Object[] response = sender.invokeBlocking(qname, param, types);5 U0 C5 w9 H# c% s6 d: Z
- String result = (String)response[0];, D5 h+ D. w2 B; k; T
- return result;. q, e0 _+ R( D$ b. D$ v) c
- }
. D5 n$ h2 k* ]* Y" v& Z- b8 W6 T - }
! A# X( x' l1 T# r. t
复制代码 WSServer.java3 U& Q+ Z8 ?2 t& \5 j
- package webService.server;2 q y) S8 t* v |, e3 M) q
- , B5 G5 |$ n/ a. J
- import util.Constants;0 x5 { Z; h7 L' W8 g! C1 `
- import util.Qq;
. ?4 M/ Z# q0 b/ F5 L/ {/ S- R - import util.SimsimiTools;
; G3 Z" |* x$ G0 J2 O; C - import util.Weather;
( H! @2 j" Y+ Y* j9 o* S$ ] - " f, h; W" E3 j+ O* x4 ?. K/ a
- public class WSServer {9 S+ X+ x9 X% k
- public String getMessage(String text) throws Exception{) G0 w- ^. Z* I. \- [5 f3 ^6 O/ h
- String message ="";- d3 i# W: U& C/ G+ `; H& }7 \
- if(text.startsWith("#")){
. e0 z+ z/ i, Q - String str = text.substring(1, 3);
J% L/ [; r w: X+ K1 I A9 ` - if(Constants.WEATHER.equals(str)){
+ V/ r4 _3 `$ v. T i# f/ }1 ? - //天气查询
$ l% h G" L' g - String cityName = text.substring(3, text.length());
s2 P: S/ L# @) l0 @ - message = Weather.Weather(cityName.trim());
^4 Y: m0 n& O% s - }else if(Constants.YUANMA.equals(str)){% |4 J9 j% u- `
- message = "源码网 http://www.52itstyle.top";
) K$ u0 O% R+ m) P - }else if("QQ".equalsIgnoreCase(str)){; S) y! {/ @) [- p3 A
- //QQ吉凶查询
% ` Q s% [0 C; n+ x; V! w& B$ u - String qq = text.substring(3, text.length());
# E1 A" Q* p9 b4 c - message = Qq.qq(qq.trim());# Y# i. i& P' Q: \- ~. l
- }else{! m- ~( d5 M+ _( K
- //小黄鸡
$ B% l' T3 C$ [+ g0 u - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
: A Y4 _! A! x" ?% p - }4 O% F1 _8 q; }9 V. @
- }else{2 @: f2 B- u6 Q$ g
- if(text.contains("QQ")||text.contains("qq")){
L- ` H" S4 E( F - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";3 o1 D7 R, r9 c, @! j
- }' F6 g" v) w5 \- D( F. w0 J/ H( A
- if(text.contains("天气")){
3 X8 c ^, a- n( X& h - message = "天气查询格式 #天气+你所在城市";& u' ~: Q: A' f% k9 V
- }7 Y4 `9 h) w4 q/ @; ~ h' i% P# X5 z
- }" C' c7 j% l1 n$ {" U2 e
- return message;' w6 ?2 @$ D5 S9 O
- }) O+ A* b; q& A+ B W% [% N, i
- }
# N+ N# z' i! f$ G a' U
复制代码 ) a! t4 {5 Q/ [' |
项目源码下载地址:java版QQ机器人调用接口源码
; i% @* ?9 w( O" h
) H& u1 z! ?! q, M: S# Y& w% C4 L4 Y2 o
5 l2 n# E1 U+ a$ S4 a
|
|