TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。+ w$ U3 w* L3 c \0 [9 o, y, j
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。9 z3 v4 ?1 a) R: J* n
实现功能:
- Q5 k4 D5 ~5 K' r8 f2 l9 B一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
# w$ W1 a4 K2 H4 n二:实现QQ号码吉凶查询 输入#QQ+你的号码。& W8 y3 K+ ^: U) t3 J4 H
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
" A5 o- _' b3 P* D9 Y, V4 ~四:用户可以随意修改源码if判断加入自己的message。
1 j. I: \% L, j5 ]1 |: i7 k代码展示:
, q" D( ]5 {; V# TWebServiceClient.java
5 K2 p; `4 k. m% t& ` Z- /**' f, E9 c3 N' ]0 @
- * Copyright (c) 2010-2013 by 科帮网, c5 O: M9 `+ o% D$ m# J
- * All rights reserved.
& {& s6 V- j7 C3 |1 z |* ^ - */1 M& `6 ]* G0 F! u i' P0 t: k
- package webService.client;% Z1 N! q+ R3 r7 ]
0 ]+ F) U- f2 s4 N" v$ C, q& M: X- import java.util.ResourceBundle;
( o* T; O, P# N6 x; [. n - & W! j$ \/ T M; J4 f
- import javax.xml.namespace.QName;
' D& w) y0 Z2 K; i* ?1 [2 }
8 Y, I7 u6 W% }! p0 f- import org.apache.axis2.AxisFault;
6 s; t* P/ n: M - import org.apache.axis2.addressing.EndpointReference;
1 Z& S! C4 R4 g' l - import org.apache.axis2.client.Options;& d& q& @8 A* N) Y$ o7 t6 C* {
- import org.apache.axis2.rpc.client.RPCServiceClient;
. c3 Z) D; |, c- q
) ^7 o; H6 f8 _. [( t4 g6 N% f0 Z4 S- import util.Constants;
& k# u) Z3 L% B% M& e! `, j8 j' o - public class WebServiceClient {2 o4 q% }" ~% j2 S
. A5 t2 S+ |' \. k- private static String SERVICE_URL = "";/ v4 `' ]6 H* U$ M
- private static String TARGET_NAMESPACE = "";
6 ^$ f b. u* R8 }5 L - & b$ b1 m K& h. [6 B2 i( h& w; p( u
- static{5 n+ P/ d% L C6 s, r
- ResourceBundle resource = ResourceBundle.getBundle("config");8 y/ x. ]8 A( X( D
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);1 C* f) m( K, ^9 \. h
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);1 G2 S1 z' {& ?0 b) g; l a
- }
" k7 }! s7 z6 z5 s2 ?6 f5 ? - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
& `1 u5 S& g- d2 E+ \ - EndpointReference targetEPR = new EndpointReference(serviceUrl);7 N. {" C; |4 L: E" L5 v7 B" X' ~
- RPCServiceClient sender = new RPCServiceClient();: o& M' s' a4 Q, w* r/ M( b
- Options options = sender.getOptions();
6 V0 j2 @& e) A - options.setTimeOutInMilliSeconds(20000L);//超时时间20s
s- N9 ~3 i7 \8 H* f7 m0 [( @ - options.setTo(targetEPR);
8 P5 ]1 Q; j8 J7 K) o5 w - return sender;- M* V. e" ^ B( S, w/ ^, u; r9 ~
- }
; ]* L/ W5 N9 K6 q1 D% Z - public String listSchoolGroup(String text) throws AxisFault{ B2 k9 L' r9 {/ i2 l* x) y7 z
- RPCServiceClient sender = initClient(SERVICE_URL);' ]5 ?, I3 k1 m! P, d
- QName qname = new QName(TARGET_NAMESPACE, "getMessage");( A6 ?. ?* t% @; Z( _# _
- Object[] param = new Object[]{text};# o4 `# o2 [/ l
- Class[] types = new Class[]{String.class};: y9 R8 |0 a/ J9 `9 } t
- Object[] response = sender.invokeBlocking(qname, param, types);( {4 J, [5 N. d7 b/ L' @
- String result = (String)response[0];) @7 f7 k/ B. D( m& X* |
- return result;3 O# I2 ]( i7 n1 [: T3 L: `
- }. V4 o }, {- n5 p( d
- }
! j) E8 F/ ^9 v) }- p* R
复制代码 WSServer.java5 X, m2 a# t$ {- l
- package webService.server;0 N% a3 B- s3 r1 A Y1 u/ ^# r
- $ s6 p2 g3 @( S( V+ C% [
- import util.Constants;" R2 p3 @! Q) o+ [* ~# p
- import util.Qq;& m% T6 R0 ?$ x7 f
- import util.SimsimiTools;
, w" W; D2 ]% U2 W1 b - import util.Weather;4 y: y5 U1 P, a) @5 x5 h! S
( @. l* m! d8 T- z/ e# }: g- public class WSServer {
# j3 V" U1 V7 I - public String getMessage(String text) throws Exception{8 i9 \% z( q P% e. i- \2 B4 U+ l* }
- String message ="";. s- r6 @: F/ q; }* ?' Z/ ~! m G
- if(text.startsWith("#")){) D7 _4 Z. _& g, L3 k2 S
- String str = text.substring(1, 3);
5 s# k& T, m( j! e* n/ K( Q - if(Constants.WEATHER.equals(str)){6 f+ p; a8 l x; Y0 K. P
- //天气查询7 Z7 C# k6 l& }& e. ?- i1 k
- String cityName = text.substring(3, text.length());
; x; Z# ]* ?( ~ - message = Weather.Weather(cityName.trim());8 ^" z& g4 q0 v9 \1 p9 V# m: A& O. m; X
- }else if(Constants.YUANMA.equals(str)){+ j" ?' ?8 W4 G6 l( ^
- message = "源码网 http://www.52itstyle.top";" \! q3 {. w B( y" W( `
- }else if("QQ".equalsIgnoreCase(str)){
' I* F! d i6 E5 A - //QQ吉凶查询
1 ]9 _( z6 r; w4 N# o0 g! w - String qq = text.substring(3, text.length());, B( K, ?5 C# N3 P8 |, }
- message = Qq.qq(qq.trim());
( N# W0 m0 v2 s- I; ` t - }else{
$ Y- X4 _' b# P0 {9 R - //小黄鸡5 C& i3 I; E: \7 s& ^+ h' j E
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
( P1 f# m0 z# u2 G- d - }
3 a" o$ ^" ]" S6 [) j - }else{
6 K4 w& f. T- L& L( y. n( Q - if(text.contains("QQ")||text.contains("qq")){/ l0 w9 p. Q: }
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
$ ^, Q6 i. ~3 B+ Q3 E - }
' }. E0 F( m9 C8 a - if(text.contains("天气")){
6 K; s, k, \$ i1 ~ I: ~ - message = "天气查询格式 #天气+你所在城市";& R; \: ~7 [( _7 d/ h- I5 C7 x
- }
/ m, P1 m% ~( P3 z* l - }
/ e% k: L* t% P8 O - return message;
" M. m/ b1 C: ~6 O* `/ J Z2 O - }$ f: U1 @. Y9 A# M
- }6 f5 k$ a9 I* B! `: H
复制代码
0 @% u5 x: S. l- n4 h! [ G3 a项目源码下载地址:java版QQ机器人调用接口源码
" B9 [; n0 W# N {/ ]+ S) T+ `9 q! ?1 @& d
: z" N8 O) C/ I) M9 ]4 B7 S9 E. W$ }4 c! O* E4 O
|
|