TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
% h: i7 B. w, s+ Z) {& F% B本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。
, N% t3 \9 o! p! r& r# `; v# s实现功能:2 Y7 _, I5 N" K0 b& D" f/ Z2 i
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
- W( B$ }7 x+ N/ `6 P8 b3 w二:实现QQ号码吉凶查询 输入#QQ+你的号码。: y8 I3 j i! t9 g9 [
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
# o1 \) f7 x7 F; Z四:用户可以随意修改源码if判断加入自己的message。. F" G6 N& r, }2 q( u: M7 L
代码展示:! \6 ^3 _; c& B' L! e6 |
WebServiceClient.java
`1 J! D- u' e; p- /**
. l4 H- n% z1 ]6 x1 v - * Copyright (c) 2010-2013 by 科帮网1 j. `/ L/ z$ D! C# l
- * All rights reserved.3 L: L3 h, ^! r0 }$ q
- */
! Q T3 _) B) b! G - package webService.client;
C% |' E+ C* m K5 W - ) R5 _' ]. n* F# G: l4 w/ |
- import java.util.ResourceBundle;
* `: N' ]' k* {" A$ ?
! G# I" x, w) \: b0 h: M( y" b4 b- import javax.xml.namespace.QName;0 i2 t: ]; K8 \% ~. H
- # w4 I+ u/ z" p1 A; ?
- import org.apache.axis2.AxisFault;" W _4 T5 r, I e5 C% }
- import org.apache.axis2.addressing.EndpointReference;! x, ~) P, V5 J+ i; B
- import org.apache.axis2.client.Options;
5 m$ u, b H! [* u, W - import org.apache.axis2.rpc.client.RPCServiceClient;1 g* g) A: T9 y5 v9 ~2 i& F
+ V' W5 f6 X' G/ Q& u- import util.Constants;
: |% r: k" m3 h% y9 y4 }$ o% c2 M - public class WebServiceClient {# D; H0 Q* `! ~6 X) k) v' [2 V
- 5 l3 |1 p5 j8 i( d( c$ k, d
- private static String SERVICE_URL = "";
, R% B* ?7 q( ?8 y. O/ N! c1 t - private static String TARGET_NAMESPACE = "";, l8 X; l7 n, W+ U% z9 x6 z+ N2 Z
! w: P& f' D) e5 |- static{
$ p; ^: w+ Y0 t4 _ - ResourceBundle resource = ResourceBundle.getBundle("config");
( \# Z$ {, m/ x. \/ ?1 P+ o - SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
. o4 ?' d# Q! x8 H! W% g - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);1 L0 u9 @8 q- f2 b3 v8 p
- }
, x- v, \" L N1 E - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
' \. q1 O% y: B/ A - EndpointReference targetEPR = new EndpointReference(serviceUrl);1 n3 ?4 D R, @, D" x" s" X6 R
- RPCServiceClient sender = new RPCServiceClient();
/ T5 O# ]; V/ T# l; s - Options options = sender.getOptions();
) I! _/ a$ S: W$ T# z - options.setTimeOutInMilliSeconds(20000L);//超时时间20s
# ?, z8 y/ n7 S3 i) \9 o$ T - options.setTo(targetEPR);
, A3 S# Z" ?4 Y1 c2 h8 \ - return sender;
( _0 s8 V6 `1 v# y - }. [% [0 | V* z0 g: @0 w" v
- public String listSchoolGroup(String text) throws AxisFault{4 |3 n: M T. _- p
- RPCServiceClient sender = initClient(SERVICE_URL);: U2 X9 X% U% S" ?# b: _6 C
- QName qname = new QName(TARGET_NAMESPACE, "getMessage"); y3 _: [9 M" Q. ~+ l* p
- Object[] param = new Object[]{text};3 m6 O- z$ A# m9 v E' B: c8 b5 P1 n
- Class[] types = new Class[]{String.class};+ v! l! ^& r! s% X8 f6 \8 y
- Object[] response = sender.invokeBlocking(qname, param, types);, U Z4 _. z' A
- String result = (String)response[0];7 [. U4 }# f N0 q! K
- return result;5 U6 q& ~4 M. g( {9 {0 t- A* v
- }: [$ g7 D H1 Q4 t- f3 ]! b9 D7 y4 r
- }
: h, }# N: o6 t% Z0 m9 L! j
复制代码 WSServer.java) W+ L6 ?; l# t6 z' S/ `( O# V
- package webService.server;1 F# d( u$ Y8 A5 S& v/ }3 l9 a
- & z' L {* Y( I) E8 N; ?4 @! x- J& e: ]' E
- import util.Constants;
2 \3 v* o) s0 O7 s - import util.Qq;1 P2 D2 C* x( d+ _5 [
- import util.SimsimiTools;/ D; W3 p# |8 ?
- import util.Weather;
: D/ Y+ e W5 V+ P1 ] - * {4 e- p; l3 e4 Q/ i4 R
- public class WSServer {3 v8 C& C2 M- B. f4 U0 p
- public String getMessage(String text) throws Exception{( x. T1 m$ R' d1 ^
- String message ="";
) i% N& i9 z3 j; B. [' ?3 c - if(text.startsWith("#")){
; ^3 I& p+ e# E7 k* d" B3 ~) y) L - String str = text.substring(1, 3);9 E6 [' V3 m- }' Q4 A8 U2 S
- if(Constants.WEATHER.equals(str)){
: s' @, k( l% c# q7 S- ~0 L2 A) u - //天气查询# R( k, U, L, B5 A) H/ c. O. ?
- String cityName = text.substring(3, text.length());8 l. ?" r( t( q3 ^0 Q! v
- message = Weather.Weather(cityName.trim());3 z! S/ i- d6 y) t$ s
- }else if(Constants.YUANMA.equals(str)){( I( Y4 D3 e( Q/ D# Z' _5 e! t
- message = "源码网 http://www.52itstyle.top";
7 p" y. H8 o, P* C - }else if("QQ".equalsIgnoreCase(str)){4 W% s4 e( X% R& k6 T
- //QQ吉凶查询
+ s* D! V+ X5 S# H2 r - String qq = text.substring(3, text.length());
) l7 M, y6 z5 D2 ~% ~* U2 G) W. P+ B - message = Qq.qq(qq.trim());
3 P4 V& k2 m- g' i+ Z6 v - }else{ u. k. _% D0 e0 R8 n7 z8 A$ ]. p
- //小黄鸡
5 B0 L% Z. b" X - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));- y; g7 U5 }7 Q0 n
- }3 L# U5 [- x9 t2 r' F" D0 z
- }else{! \; w+ z& S2 J9 d9 K# h
- if(text.contains("QQ")||text.contains("qq")){- C0 n2 z, A. x8 ^0 M% D
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";3 T' K* D( D- K
- }
! ~9 k) ~5 P" C! j* C% h6 `: f1 o' I4 F - if(text.contains("天气")){
: u2 \: r0 c9 M) H: c% e - message = "天气查询格式 #天气+你所在城市";
# c- d8 i5 R: r( h8 j - }
) c! u/ U+ `' ~! u - }
6 q* V2 h' m. S4 y: n, L - return message;
+ l6 @( S* S7 } - }5 b. D- d! j$ D- ]4 c4 x) g
- }
: }+ B$ r. j& b5 S
复制代码
/ |; d4 ]* _( U0 s项目源码下载地址:java版QQ机器人调用接口源码
1 x- W1 L6 E* V8 _3 q
0 Q& ?+ e# R) t3 e9 D' A( w6 X" ]
\5 ^) @2 R' p |
|