TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
9 ~1 [: ]& T [, K. o" M M9 }本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。
" k* R2 K* d4 @* `% o实现功能:
- Q) z1 o( a9 M) }$ g一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。$ B# Y( o! j- o5 ~% ~4 u
二:实现QQ号码吉凶查询 输入#QQ+你的号码。
3 g2 L. m$ K! Q) b2 n+ a* h三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
0 d/ y6 b. F) G" f. I四:用户可以随意修改源码if判断加入自己的message。
3 @; a% X( m0 |) t: Z4 G& g* R9 n代码展示:1 @# v1 R) E; Z+ {" s, T* s
WebServiceClient.java
- R- F5 n7 z/ @- /**
$ Q4 W. _# I! @ - * Copyright (c) 2010-2013 by 科帮网
* `" e6 F e+ T! q) I7 C9 e% }! U0 ? - * All rights reserved., ~/ X! R. Z4 {9 l. s* a
- */3 f/ h: F# c% o, X3 j6 c" N
- package webService.client;8 f5 S4 F& {. X, \0 s6 P
- $ B/ J. @, w- o8 s* O3 Z
- import java.util.ResourceBundle;0 t2 C- @. D2 {7 R% V0 @7 P
- : q: T3 C& q* R. J1 p$ M, }$ E# m$ ?
- import javax.xml.namespace.QName;
2 `/ x8 ~4 V. v! n5 | - 8 d# [% s; ?6 X5 r3 G/ r
- import org.apache.axis2.AxisFault;* B- X! [4 @4 ^( H7 O u! [) W
- import org.apache.axis2.addressing.EndpointReference;- S9 e3 w) I# e' g, b
- import org.apache.axis2.client.Options;
" i) L9 ?* p9 \1 ]+ N& [# z - import org.apache.axis2.rpc.client.RPCServiceClient;
# S | F) U" g
* H4 r) ?3 r: a+ p6 A. G, I1 m4 i' ~- import util.Constants;) N" u* S2 R1 t. e$ _
- public class WebServiceClient {
7 H% ?+ I% f( P$ ^4 l/ C
" d5 `5 @% }6 X$ ~- private static String SERVICE_URL = "";8 Z% o* P2 T* ~9 g
- private static String TARGET_NAMESPACE = "";
. H3 U: K6 O- m& L% B& [
/ ^" Q0 S, x# s) ]6 x1 l4 p# g- static{7 c& C4 l4 E- _5 c2 I0 ~
- ResourceBundle resource = ResourceBundle.getBundle("config");% Y1 \9 s+ x A3 ^6 Z3 H9 n2 x) W7 M
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
! o1 G6 _4 J+ t3 \ - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);( E9 Q- l% V: Y" |
- }- M1 }: ]$ T8 z* k
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{/ H9 T Y1 w" f1 I+ ^. Y
- EndpointReference targetEPR = new EndpointReference(serviceUrl);
$ n& [/ D; [8 u- E+ @% M" ] - RPCServiceClient sender = new RPCServiceClient();: U) u) m; @$ t8 O: b1 b" _
- Options options = sender.getOptions();
6 ?4 ~( b7 ]: g5 V- m - options.setTimeOutInMilliSeconds(20000L);//超时时间20s# J' }% o8 \9 {" s
- options.setTo(targetEPR);$ @; f- M- u6 T" B& h0 b. l# ~
- return sender;
# o2 v& h5 R }: F7 l6 s - }
( O+ M {& F) K7 L - public String listSchoolGroup(String text) throws AxisFault{
8 J" q; v4 ?. N6 s, J4 P* r8 ~ - RPCServiceClient sender = initClient(SERVICE_URL);
' T/ L1 J; @+ s7 {: X B0 z - QName qname = new QName(TARGET_NAMESPACE, "getMessage");' B/ S- ]" Y' w6 m- n; X
- Object[] param = new Object[]{text};
& a; x0 z: N# c$ \# X4 B O! B6 _ - Class[] types = new Class[]{String.class};
( }% }8 C5 u% z7 g/ {- ?( N - Object[] response = sender.invokeBlocking(qname, param, types);9 z( }- w+ ]& }/ H% h+ \! Q
- String result = (String)response[0];3 G# Q1 C4 {- j( }. W- s
- return result;1 q# Z8 x# Z$ I8 l" @
- }
: f: |) T+ N; d* A+ J" @7 e - }
1 F( I |1 y4 T+ e# S, N
复制代码 WSServer.java
* ^1 x9 h4 K" `; X, T- package webService.server;
$ t) p5 @/ v, x" S. ] - 6 i2 Q# B2 I& i$ r
- import util.Constants;
" T0 Q( t# b6 u$ x6 s5 `. Q# Q - import util.Qq;" z( o! D8 b0 R: A
- import util.SimsimiTools;
* y$ I$ q1 s; q5 R7 \ - import util.Weather;
# c8 V1 k) `) D8 p
& f/ i) A3 y# F" p, x6 E' _; f- public class WSServer {$ C. J* N8 A2 I. x. S
- public String getMessage(String text) throws Exception{6 c: V: f8 G$ y* B
- String message ="";
% ]) o9 u! H7 d0 }$ U0 q6 _" r - if(text.startsWith("#")){$ @+ b% h+ ~; X2 j
- String str = text.substring(1, 3);9 k) m+ k+ U- t/ [4 b
- if(Constants.WEATHER.equals(str)){6 }/ X7 v- V8 |+ X2 n
- //天气查询
( M3 L5 ~. l3 o - String cityName = text.substring(3, text.length());
4 j7 M) X) q8 a# G8 H9 `7 a - message = Weather.Weather(cityName.trim());. M' U7 l7 x4 ]0 y( G
- }else if(Constants.YUANMA.equals(str)){
- z8 W, d/ q+ Z/ a/ n1 _4 n0 P9 Y - message = "源码网 http://www.52itstyle.top";
( o. j( j: k3 a0 v - }else if("QQ".equalsIgnoreCase(str)){" s# |3 |* C4 s. g, H+ q8 f
- //QQ吉凶查询
' V9 Y$ S; x& Q2 _5 H - String qq = text.substring(3, text.length());2 f B# _: S& z, R9 d* u
- message = Qq.qq(qq.trim());
5 |0 s/ e5 k7 u$ t6 M - }else{
# [; k3 F: S5 Y) T* z - //小黄鸡
. E7 l7 q# c t" a - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
* J; L* n5 C. N* l - }
6 ^6 v: N7 e4 Q0 j' p - }else{
9 B t3 @& m+ M& Q4 i - if(text.contains("QQ")||text.contains("qq")){
8 z- c% T) x N a) j* D( J, o" R - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
* F+ r9 ~4 n: h+ W6 H. K+ D: D - }3 ~# u$ \6 F7 `: z
- if(text.contains("天气")){
7 Q% A/ s; Z& Q: t) N- H - message = "天气查询格式 #天气+你所在城市";
. k/ x' ?( }. |, a4 r$ B7 U - }
2 q2 ~7 i$ x. C# T# \4 O7 e3 s - }
9 C& ^# G* U! x) Z( i - return message;
" ?- R% H# }$ [# J - }5 r5 J6 I) H* p# q2 l5 N
- }
$ s. K/ @5 f/ W$ p" m8 W
复制代码
4 h7 D' \ l) l+ q! q; {3 F项目源码下载地址:java版QQ机器人调用接口源码3 X; H; A8 e6 ?' D2 k: F5 h6 @
/ s a: O7 C9 [; d/ v- `/ n( i
' Z2 ]+ W" ?7 b: X4 {1 h5 {6 K7 e, j. D! d- w; N
|
|