TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。0 r; L- z9 g- N' _* l$ ]
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。; d, T3 N6 f4 o3 B" m
实现功能:
7 g2 y# h2 ]8 b& j6 t- P一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。; }% s! {( a) u I" K6 O
二:实现QQ号码吉凶查询 输入#QQ+你的号码。
& X8 E* N* u0 i9 ~3 z& W9 H1 e三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
% h0 C2 k1 H3 Z; j四:用户可以随意修改源码if判断加入自己的message。
# p7 V4 C- C0 N" O# A4 {3 Q代码展示:
8 l% @) s, b3 t- AWebServiceClient.java
5 L1 q5 f( P' X3 b# {5 F- /**# T Y& S/ a V0 v% `/ x) e% Q
- * Copyright (c) 2010-2013 by 科帮网
2 W; G8 C. L5 w( z& _ - * All rights reserved.
+ P, I5 X' a0 i0 |. v8 c3 { - */
7 y; a) j3 L7 R7 O" `4 F - package webService.client;1 I& f/ L( h$ {# \! n( K. L
* k( \! ~: s7 Z# h- R) G' T- import java.util.ResourceBundle;% l. ?9 L* C( o2 P+ C+ m% j
- - c5 p) [" O* z8 p% q! I
- import javax.xml.namespace.QName;- q0 ^3 {: R O7 Z
- 7 K) i! Z) A( X
- import org.apache.axis2.AxisFault;
' O# z: h x2 ^: r1 I - import org.apache.axis2.addressing.EndpointReference;
* i1 h& b" P0 t$ m6 \ - import org.apache.axis2.client.Options;
0 v) D0 e) f: u6 i - import org.apache.axis2.rpc.client.RPCServiceClient;
6 ?9 j; e9 N* [1 j7 R1 ?; x+ d - : P" t; s+ D( {& g0 r' J+ O
- import util.Constants;0 O& Y- i) L+ `9 P$ e% x% [3 G( [
- public class WebServiceClient {, t- K; `* k1 v/ T6 x
$ y. G$ k# }& H: k3 x3 s8 X9 e- private static String SERVICE_URL = "";3 O6 ^' d& ]" z& g" n
- private static String TARGET_NAMESPACE = "";( c* n" ?$ l, o( U" R$ s a) E
- & ^! X! l$ L, J
- static{( u S, h( P) X4 W" r! f
- ResourceBundle resource = ResourceBundle.getBundle("config");8 D; F) |* ~8 `) t% |" m& y
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
+ ]; f, X+ R: h& S2 i7 s! n H - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
) M0 l% Q1 A+ ]' `1 i5 v - }1 J2 I, u" s% A) ~ A
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
) Z# _, t; n: \ - EndpointReference targetEPR = new EndpointReference(serviceUrl);
6 l4 M- S3 l& T5 Y# K - RPCServiceClient sender = new RPCServiceClient();) N6 P7 q2 M% Z" I' Z' y! I
- Options options = sender.getOptions();" R' q$ }& z9 f' h; V
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s/ l7 K) ?! r6 W) ~7 a" e
- options.setTo(targetEPR);0 j4 O0 D2 {6 `( }
- return sender;
! @5 N* J, G! |7 R% l# F+ r - }" i! }6 G4 M+ d, c
- public String listSchoolGroup(String text) throws AxisFault{
+ i) y( ]$ M$ r: e4 m) _6 C3 ^ - RPCServiceClient sender = initClient(SERVICE_URL);
- r4 H& Z7 X+ I2 l ]& }5 R - QName qname = new QName(TARGET_NAMESPACE, "getMessage");, o* q @+ O' A9 v3 ^# A" ^
- Object[] param = new Object[]{text};
" _3 p* X9 j% Y! n/ `7 @& Q- r - Class[] types = new Class[]{String.class};5 n( V1 f R% i1 p
- Object[] response = sender.invokeBlocking(qname, param, types);
% n3 x: {* v" f: e& [" A" ? - String result = (String)response[0];: b4 k5 z5 d1 }! n
- return result;
1 Y0 e' J" `/ g& O9 J! y) } - }
& y1 M* a5 V. {3 g6 t6 _ - }
* v \6 A4 M, r0 @" ]! f
复制代码 WSServer.java
( A, X7 C* A* x8 x- package webService.server;
& A4 S1 b! X- c# A9 S
( K2 J: R& H4 p/ K7 ]* Z- import util.Constants;
7 z9 T r& U9 u - import util.Qq;1 D0 U( Y! }$ A! i& E
- import util.SimsimiTools; j/ _8 F$ D! p2 k1 `- B# x
- import util.Weather;
3 ?1 i l" Q6 V9 j0 { - " L! I3 q$ p! t5 f4 T3 b
- public class WSServer {
! G* r% E% B( p - public String getMessage(String text) throws Exception{& n4 C8 I) K" n1 M F9 L6 d
- String message ="";
& [3 U, a$ G' ~0 ]. v6 s$ A - if(text.startsWith("#")){
% v [' I1 z. t9 r1 C - String str = text.substring(1, 3);" v: W$ C4 n w$ e* T+ c4 Z5 r
- if(Constants.WEATHER.equals(str)){9 N( g/ l7 U+ Z( m
- //天气查询
3 {- m. K" D; V! T! [ - String cityName = text.substring(3, text.length());. W" A( y8 Y2 A( Y/ i
- message = Weather.Weather(cityName.trim());
/ g3 k0 T# F0 r d2 {/ g' a. Z - }else if(Constants.YUANMA.equals(str)){
$ V' A5 g, }6 O+ X - message = "源码网 http://www.52itstyle.top";
1 J( [2 O0 _# j ]. R3 V) d) w - }else if("QQ".equalsIgnoreCase(str)){
* {! U+ z' O" T5 K9 u - //QQ吉凶查询
+ p e" b y; v" `5 f" C - String qq = text.substring(3, text.length());
W% C# o/ s) X( y% Q - message = Qq.qq(qq.trim());, z8 \% E& D) g+ Y' F
- }else{
% {& R! o4 ]9 h: h - //小黄鸡" h/ F: p; u7 p+ K
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
) u7 P+ p- R- L* ]% j - }
9 H" v$ U) q- j Q' N1 ~. J - }else{
! g! I: l, P0 M - if(text.contains("QQ")||text.contains("qq")){
1 V% i& x4 x! N% t m - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
# B9 b+ S/ M/ \1 A7 ` - }
& U% C" g5 T* L+ |+ `9 L - if(text.contains("天气")){) @: B* P" [' C9 \: E7 v
- message = "天气查询格式 #天气+你所在城市";/ a- g' S" n; B# a2 K2 c
- }( O9 _: y" J2 k- ~' ?, K( r' ~
- }
1 g$ V5 d, O$ } - return message;0 P! J" j: v" i9 w' V
- }9 c3 o! e" C0 J4 }! T" Z( B
- }
. k$ d" ?; U( E
复制代码
& [5 i+ r) d* }项目源码下载地址:java版QQ机器人调用接口源码( ]7 [8 L, J1 h0 B/ o# Y" q8 \
9 x5 z f5 W% K
7 d# g! s) @6 {2 f4 ~, k5 _6 d4 _& g2 W/ }
|
|