TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
$ f4 y0 B: e$ Z! [本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。
/ f) }1 C& L$ L3 n9 q9 }7 h实现功能:9 g( A; Y' H* U/ L2 V1 B b
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。+ c( r; h# q2 @" o* n& i
二:实现QQ号码吉凶查询 输入#QQ+你的号码。+ R6 R2 E* P; i, T$ E# S3 `
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。$ P9 e, ]+ _5 B
四:用户可以随意修改源码if判断加入自己的message。4 c+ X P( y( d) G* Y
代码展示:& R, g7 L- R6 {* R- C# m) a3 h
WebServiceClient.java( d1 B6 T N9 B+ i+ K1 ~) B- A* x
- /**
$ b+ _- j9 A9 w8 Z% D) q - * Copyright (c) 2010-2013 by 科帮网
4 N ]. h; Z2 H+ J/ M9 a# E - * All rights reserved.# S. G; p x+ P& L9 S
- */
! T b' d% S I - package webService.client;
4 f9 u% l3 T6 o* e& g - 9 U5 K3 g3 Z3 w6 R+ h& ?$ y
- import java.util.ResourceBundle;5 d8 p; n: a% `6 J# O7 P3 G: @
- 1 p5 m9 |6 J! t
- import javax.xml.namespace.QName;
" c# t, F7 N4 a- ]
/ a) |8 Y; a$ G. g. m% L- import org.apache.axis2.AxisFault;
7 u( L4 p4 S! R! f9 A k' g - import org.apache.axis2.addressing.EndpointReference;
/ m8 i" w& |- E3 t3 G( \ - import org.apache.axis2.client.Options;/ e. S: B7 _2 O, Z, w6 j' J
- import org.apache.axis2.rpc.client.RPCServiceClient;
4 v( l' [/ N- u2 Z, m - # @7 E" k! w& w
- import util.Constants;
$ p* h/ s2 ^! Q) |( d - public class WebServiceClient {
8 M/ u) i9 M( Z' D
7 s: v: s- `% p# d6 ~. U- private static String SERVICE_URL = "";+ A, t8 J% w2 C" c! w, C
- private static String TARGET_NAMESPACE = "";4 J, y( S" x; b- T
( m6 F% a" b: H. U4 @( d- static{8 t' W% l5 ]; E( s
- ResourceBundle resource = ResourceBundle.getBundle("config");+ P y' D9 B m, f
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);) V4 a3 L( {+ O4 ]
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
0 [4 T4 v4 m$ U# k) ` - }
; y. g4 ^+ L& S- C4 B+ T* a4 k - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{. d- L0 V9 t6 h* R
- EndpointReference targetEPR = new EndpointReference(serviceUrl);
3 i" h: c1 {( ]2 H- ]. f t - RPCServiceClient sender = new RPCServiceClient();/ J* |+ I, h6 s
- Options options = sender.getOptions();4 O% q7 Q6 U* p9 V7 n$ d
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s
5 ^) r; R6 c( x( v* T% I O) l - options.setTo(targetEPR);
# U+ R1 G8 C3 e3 A3 O: C) c - return sender;' o( T3 S( s# {5 K
- }$ E. Y9 T# f" V% Z. A& H# V* O
- public String listSchoolGroup(String text) throws AxisFault{ Y! j# Z( K6 S. y
- RPCServiceClient sender = initClient(SERVICE_URL);" o" K; o S1 [: P
- QName qname = new QName(TARGET_NAMESPACE, "getMessage");. v' D* P! M7 b% ~% S" g
- Object[] param = new Object[]{text};+ y: W; [3 o* Y* p; r- i4 A8 h% m
- Class[] types = new Class[]{String.class};
9 _8 P! ^/ ]* t5 n6 k - Object[] response = sender.invokeBlocking(qname, param, types);
* H" Z/ F' d- T - String result = (String)response[0];7 G: o- ]% x9 ` f
- return result;# ~( }+ O/ K, x! O- B% {
- }9 b k5 i6 w0 }# m$ [& B" U# Z
- }2 ?# u! a6 H- d! N k) g8 ]
复制代码 WSServer.java
* l5 \2 Q4 F/ S8 Z) V; S- package webService.server;
+ t+ r9 i0 b9 g% f- ` - ( V6 e8 Z6 g2 q/ P% U# Q' F
- import util.Constants;
, C- w1 k5 l, r/ Y) B- [ - import util.Qq;
8 @2 u9 p8 q' N1 P' H! X - import util.SimsimiTools;& a) F* N- B' s; Y( O0 |
- import util.Weather;
. l$ l8 j- H/ y% ~8 l - / E4 Z2 q9 C! a1 R8 D
- public class WSServer {
; S! ]4 ?3 q( n0 m' ^: m - public String getMessage(String text) throws Exception{
% H1 O1 f+ M u4 G9 O; m7 q# Q" u - String message ="";. I& d" W8 k( H. d
- if(text.startsWith("#")){ O; ]0 S; c) r8 U
- String str = text.substring(1, 3);
9 d$ [9 s. J& _. J& ? - if(Constants.WEATHER.equals(str)){; }6 Z: y$ p# w' Z% l* b
- //天气查询0 o2 S7 B5 g2 Z0 |% S, v( C0 l
- String cityName = text.substring(3, text.length());# y0 a! ^; Q* S" C% e
- message = Weather.Weather(cityName.trim());
1 V. v8 ]6 {) s8 B6 b4 t" ] - }else if(Constants.YUANMA.equals(str)){: x. w: v8 l, z6 n
- message = "源码网 http://www.52itstyle.top";& c4 B0 ^/ d- N
- }else if("QQ".equalsIgnoreCase(str)){& A# ^/ ~1 @+ Z8 S8 |3 n: P
- //QQ吉凶查询, l& L4 C. G4 P* N+ V- _& V
- String qq = text.substring(3, text.length());% M4 F ^8 M9 b# e) K! s
- message = Qq.qq(qq.trim());
4 N% x& v! y2 ?8 y! V7 G - }else{
! n, [' r' w$ r& i* s. l - //小黄鸡. ]( i" ~* \. \
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
8 C( X, W a1 c) p - }
* B9 Y% W+ z# A. S. j) X3 V5 H" q - }else{' }9 } D* N3 O' e! ~
- if(text.contains("QQ")||text.contains("qq")){/ [1 C: e: ~( y4 z) R4 N% g9 b
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";( `$ W, ^' C, H- |) k0 R0 n7 L
- }( D8 ^- D" ]: G
- if(text.contains("天气")){
) k8 F3 ^2 I4 C. w6 W4 f - message = "天气查询格式 #天气+你所在城市";/ l. E) i+ E1 J1 W, N/ V$ T
- }
- N( \5 a4 T0 L& c2 _( j3 [ - }
& p+ p9 Q' U, x- @) K3 q- K - return message;
" T! N1 L# Z- d - } `$ Q; j! W' q
- }
" W7 O6 O) a% s+ f' V z, O
复制代码
! g) ?, A6 R2 l% ?2 k项目源码下载地址:java版QQ机器人调用接口源码
) D# v. t' V8 o K3 f
/ g/ s+ A4 a$ @5 f) E) |$ n0 L( P" U: J+ U7 s( D# q
8 {: `# j F) U v' B9 O$ s
|
|