TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。9 t1 X) O& \; D. t0 ]) l
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。1 f8 q4 i4 I! H' W& L
实现功能:* ?: n* T' y3 q1 a
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
/ ]5 W% r' `7 W2 P3 G2 I6 k' U' F二:实现QQ号码吉凶查询 输入#QQ+你的号码。% R& G. y$ [& i
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
$ O l1 ]& s. g四:用户可以随意修改源码if判断加入自己的message。
9 |. I' ? }) B代码展示:
3 q' _& Q9 L$ r( @WebServiceClient.java
5 L2 I1 I: w& ]* l' s6 ?$ E- /**3 m) Y! |) q0 B9 z: Z" }
- * Copyright (c) 2010-2013 by 科帮网
( X) V( F' T# ?3 C# n; l" } - * All rights reserved./ z; D" |& ~) L
- */
7 u: K- W/ ~. p- P - package webService.client;2 B, p; |0 i% V: n( _# W1 B0 F
: W6 n3 q* i# e; Q) W8 s6 t- import java.util.ResourceBundle; K7 d# a8 ^1 _# G% Z/ C |' e2 j
- # P. b6 x% b" r! N
- import javax.xml.namespace.QName;% B! b! z' n7 o3 M3 {6 y
- , e/ C8 w' Z' b1 n$ [9 R: Y
- import org.apache.axis2.AxisFault;. \' c) A6 v A, l
- import org.apache.axis2.addressing.EndpointReference;
, O. Q6 Y' \8 e - import org.apache.axis2.client.Options;
* Y, }( Y/ H+ m4 v8 [: m - import org.apache.axis2.rpc.client.RPCServiceClient;- ~; O$ I, E1 h! {1 c
6 T# ]# a& F8 w$ [# z- import util.Constants;) h! T5 c* M. P* m" p E
- public class WebServiceClient {
7 b: ^6 u9 X# \ - X9 u; Y3 T; Z
- private static String SERVICE_URL = "";
1 }+ N( D3 G2 S/ |- l" ? - private static String TARGET_NAMESPACE = "";
0 P* I$ R7 L4 M B9 ~( F - 0 T, _, {, Y: w; ~
- static{3 |$ }" k3 F' R% \
- ResourceBundle resource = ResourceBundle.getBundle("config");
' m& X5 Q6 K) u3 c. d - SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
9 O/ [/ S! t% t) V8 K% Q: e- I4 R3 |" I - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
6 \- W3 o3 ?7 }% a- P - }
; h0 |% I0 ^7 ` - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
/ t* Q4 v# J; j - EndpointReference targetEPR = new EndpointReference(serviceUrl);+ l% g7 S0 D! A4 M
- RPCServiceClient sender = new RPCServiceClient(); j5 R3 M/ I1 L7 P
- Options options = sender.getOptions();0 u0 }( ~ w1 ?) R' T/ b: x
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s4 t% `2 q) c8 u; ]9 [
- options.setTo(targetEPR);
4 v* ^9 b2 o8 o - return sender;" E( m) O+ l. M2 }
- }
" }1 e, c7 P t% V1 {0 ?* h - public String listSchoolGroup(String text) throws AxisFault{ J6 Q9 D2 I& _: z' \; B5 ~ }) b
- RPCServiceClient sender = initClient(SERVICE_URL);
: s3 t: P- n5 S: b' Y9 ` - QName qname = new QName(TARGET_NAMESPACE, "getMessage");4 Z3 i, R% e9 a$ {
- Object[] param = new Object[]{text};. _. s! ?6 s& V, ~, P4 H* f
- Class[] types = new Class[]{String.class};
2 k) {9 A4 C6 Y# h4 e' X7 f% x - Object[] response = sender.invokeBlocking(qname, param, types);
1 g/ E( f) F$ _! d! M - String result = (String)response[0];
8 p1 J h/ l: }8 l, y- t - return result;
3 r; i- Q' e' z& z, M+ E8 W - }
! P% l" R2 f2 x B/ O0 ^& ] - }, s7 R: j9 A" w9 B
复制代码 WSServer.java! k2 D" V- W) A+ X( _
- package webService.server;' ~2 w' }3 C+ G1 B) b7 N
- # O* P, g4 {! Y# y
- import util.Constants;
0 ^' \- ?5 Z4 X# a! o7 ]. l - import util.Qq;" j/ D# k6 c- `$ C3 V8 j: G
- import util.SimsimiTools;
+ G3 }2 i. p2 o4 k$ O - import util.Weather;0 _$ J k) }+ y4 x9 F
- . t% Y0 E' I. y% \* `$ M
- public class WSServer {3 ^8 H7 g' S* a( ~2 b
- public String getMessage(String text) throws Exception{* ?7 Y5 f2 u2 E) e# w9 ^. ?
- String message ="";. K) d3 C0 U3 n% {9 M) d9 u& m
- if(text.startsWith("#")){
$ |- c, l( D4 V8 G1 |+ | - String str = text.substring(1, 3);8 I f9 S; H; j+ T) L& H: ^& ^& H' u
- if(Constants.WEATHER.equals(str)){
' D( y1 c1 _7 ~9 Z, w" c: O - //天气查询 V7 g, M& i( K0 k1 I! v; E
- String cityName = text.substring(3, text.length());) O* q1 k. Y( G
- message = Weather.Weather(cityName.trim());
8 p2 L1 d7 e- o7 ~4 g+ b - }else if(Constants.YUANMA.equals(str)){( P! g* R' n! D" t2 S. |. F
- message = "源码网 http://www.52itstyle.top";; U7 Q+ p6 R8 `; H) l) p* t
- }else if("QQ".equalsIgnoreCase(str)){; k& s9 j8 P$ ~9 T+ [
- //QQ吉凶查询 h! y" Q& L* `
- String qq = text.substring(3, text.length());
' i( `- A: a4 S# f - message = Qq.qq(qq.trim());
% Z8 r* v$ e/ M% q - }else{" I9 \/ H2 @8 y3 l7 w
- //小黄鸡
5 n& [5 N% i' ~* V - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));# q' L% m6 j" q& k5 F
- }
; X s' _: j- i! J. a - }else{
# K& o9 b, W4 C8 m; p$ k4 ^ - if(text.contains("QQ")||text.contains("qq")){ c' B3 K# p, p! O3 ^, c7 K0 V9 Y4 S
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";& ?3 T) y* v1 Y% W, X) u$ c5 X3 X
- }; D6 K F7 j$ K; l
- if(text.contains("天气")){
2 k; T: x k4 Z4 g# t9 B9 d - message = "天气查询格式 #天气+你所在城市";
) u% E. K$ b8 U2 L# l: R; p# e - }/ E, |0 H/ a& T# J& l' a
- }
5 P7 M5 ?; l) Y5 v# Y4 ~/ y - return message;
3 ? ] ^3 Y4 F1 M9 I - }
% ~2 _% L1 K/ r3 I0 b# Q - }6 D6 l4 z- a$ a- J) W" O
复制代码 6 K. C7 F9 ^# T( z1 O
项目源码下载地址:java版QQ机器人调用接口源码" x" P' l/ L# A+ y: b" ?+ }
( Z0 b! H& [7 O) J9 |2 T, Y2 p
, j: d. s" i0 _& z N
' D1 h6 M$ ~* \( B4 ~ |
|