TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
J& C2 o _8 x本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。) u% G# {( t7 A A) `$ B
实现功能:
6 ~" N- p/ g3 u3 s一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
# E6 f9 F: T$ `) Q! Z! b; d3 @二:实现QQ号码吉凶查询 输入#QQ+你的号码。
/ y9 J6 Z4 D- O+ K三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
/ i) _( S2 i9 s: y- p% i$ y& Z四:用户可以随意修改源码if判断加入自己的message。- Y$ |/ c* m* ?) ], F- m: N
代码展示:+ }( D+ H+ c1 X4 d; M+ n0 {5 X
WebServiceClient.java; |$ z" z: A0 q0 r7 [1 D4 i) r3 x; ]) O
- /**
3 U3 h2 z% s) e `/ R+ @1 Q' q& j - * Copyright (c) 2010-2013 by 科帮网& q; W) c& k6 X' H
- * All rights reserved.
7 K; z4 Y$ x3 l& u) r - */' h9 B2 d7 C' V; |
- package webService.client;% `6 q/ N9 j; X4 V
- + P& k* T/ c; g2 j1 | C' C" Q
- import java.util.ResourceBundle;- [- a i) R1 z0 u F9 ^
) W, [% L6 g) Y9 f6 p* R+ \ E5 k- import javax.xml.namespace.QName;2 }5 M+ f8 l& Q8 i( s
4 g1 Z, I5 r$ e+ G- import org.apache.axis2.AxisFault;
) @, C& e8 R( x- {3 W - import org.apache.axis2.addressing.EndpointReference;
9 Y' `1 ]3 \( |4 x/ X/ n - import org.apache.axis2.client.Options;
2 C+ i( f7 O5 Y% O; ? - import org.apache.axis2.rpc.client.RPCServiceClient;
1 S4 c' u: W& S7 Q8 z9 N Q" E
% K8 F* a8 c( E' }; q% v4 n( D* [- import util.Constants; ^/ |5 X7 I7 h# O
- public class WebServiceClient {6 s' P4 N, G" v1 C+ {0 ^; `, s
- 1 q- [& Z1 r y' C
- private static String SERVICE_URL = "";
& y$ L. s4 S' m1 _* q - private static String TARGET_NAMESPACE = "";& H, t8 G6 b! c" G* Z
- + t5 y) d$ |" O: I& | p/ `) M
- static{
0 H6 ^# M$ k1 P1 X5 \1 b D* x - ResourceBundle resource = ResourceBundle.getBundle("config");2 `; r9 k8 a) ?# x- X) S
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);- z6 F% e$ f5 d
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);8 R) y% p, \+ K' w
- }
% u/ _' Y' X6 X8 {; i" ~ - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
8 U x8 ^" H/ h- | - EndpointReference targetEPR = new EndpointReference(serviceUrl);+ c4 ?; M& O* w9 n% f
- RPCServiceClient sender = new RPCServiceClient();
1 g `1 h# ~9 ~4 N# w - Options options = sender.getOptions();$ P5 ?2 _7 A: B' e2 _" p0 F* u0 _
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s
7 X9 [: {8 `5 B" ~/ a - options.setTo(targetEPR);0 j$ I1 ?; w7 r# Q
- return sender;
7 `2 B+ b) J* F" V; b7 ] - }
& g! C$ D4 ~; P4 p& z1 S. { - public String listSchoolGroup(String text) throws AxisFault{& i. _6 D, n" Y* m% H' }
- RPCServiceClient sender = initClient(SERVICE_URL);
: s7 Q; @, |8 P% |: D - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
- g: N- c) L8 g1 X4 K$ o) ~ - Object[] param = new Object[]{text};
" h3 m8 N4 B0 v/ Z1 y$ d- v) O- j - Class[] types = new Class[]{String.class};
" h9 W( r" w( ~ R9 K - Object[] response = sender.invokeBlocking(qname, param, types);
3 q2 T8 L. b( b1 U - String result = (String)response[0];+ `2 i9 v2 I8 l& w9 f
- return result;7 p. [, y' {. ]1 k' |' D
- }3 g( j8 w- G" d8 g' P. d% O" F2 r9 R2 x
- }
9 \5 t6 ?; y0 V4 n* k* A* ~
复制代码 WSServer.java4 B0 g* Z" g" ^! o8 a: Z/ H2 v, P, p
- package webService.server;- N9 x! f) u3 E
- # [' N( n% b" V j; o
- import util.Constants;
: F- H6 D& q( U% ~/ S+ C# z6 Y- E - import util.Qq;
! {. O6 X) j+ V, J) s - import util.SimsimiTools;! o0 y4 [6 o u( j( o/ ?; d
- import util.Weather;
; E. k" U& B% S2 |3 Y2 h - ' N( S' L% t( M1 K2 I& c7 a
- public class WSServer { h0 V4 X( ]$ T1 R3 `
- public String getMessage(String text) throws Exception{
! {5 i: e( J7 P7 Q' g/ Y - String message ="";
8 l9 R4 W6 l. K2 y+ k0 F - if(text.startsWith("#")){
/ ~1 s3 S- Z9 i+ J8 F5 v - String str = text.substring(1, 3);
0 A% O* U2 S1 F" R/ Q - if(Constants.WEATHER.equals(str)){9 j- }/ s* e9 r2 x0 U$ \( I
- //天气查询
) O- ?% b2 V% A0 M* ^0 C1 A7 o - String cityName = text.substring(3, text.length()); U1 }9 K# y4 f* g
- message = Weather.Weather(cityName.trim());! s) z: {, g9 D& k7 U
- }else if(Constants.YUANMA.equals(str)){5 L& d, W7 {$ n6 ?1 k; \) N* r
- message = "源码网 http://www.52itstyle.top";2 a" L: o& k) }9 t" u: S# K6 K6 @$ C+ E
- }else if("QQ".equalsIgnoreCase(str)){8 P. t+ ]5 C' T3 V( w( P9 [
- //QQ吉凶查询
. p8 C. S/ q5 w - String qq = text.substring(3, text.length());' H- z9 k" k* `
- message = Qq.qq(qq.trim());
, k) ~% R* W8 Z0 |. \3 d2 L6 O - }else{
! D) U$ i1 _: P - //小黄鸡
* D' v# |, H( \, E - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));& v& p" J+ P" l3 `& B, N. R
- }, C1 a6 r }% [. I- H2 S& [
- }else{" B: S4 ^. {& l! ]0 P! @) G
- if(text.contains("QQ")||text.contains("qq")){! p. `" q: z" j* c0 z0 T
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
. l+ l7 r1 h' y; D: s1 L) f - }
/ r% m" n: I1 n/ w; K# M - if(text.contains("天气")){
( S1 U9 a! ~" K - message = "天气查询格式 #天气+你所在城市";% M; z2 A1 A* O) `9 v: G# y: n
- }
, G3 z% `0 Y, Z) D6 L& y - }8 ]2 a4 J# T1 ^8 i' A
- return message;1 v0 w3 c& B( w9 S
- }
& V# b3 X8 D: ^' q) U; W0 s - }
; [" d) Q- o$ g. Z: t
复制代码 - D1 z" z# v, ?" q' P% P+ `/ C8 ~
项目源码下载地址:java版QQ机器人调用接口源码
3 o ~* y7 A/ w# e. Q# R( i7 l- Y2 C* j
& X4 s) e* W1 A8 h1 X
2 Z) {' s: x4 O" S5 v
|
|