TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
/ o& _9 y' k' T" f本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。
% D+ T* d8 D. J. t) e实现功能:) b/ ~' f! y) D2 [: N$ W
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
/ `' y* {+ a6 [ H8 P二:实现QQ号码吉凶查询 输入#QQ+你的号码。4 R, Z) X- w5 ?: o
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。& ~' M5 ^% h& e4 u( l* o0 ?
四:用户可以随意修改源码if判断加入自己的message。1 a) h" z O; h2 ]* T1 v
代码展示:+ x' R9 |. q" H8 t, |
WebServiceClient.java
6 l' u4 S2 ~. F0 q% b3 x0 F4 E- /**
. B* r* i+ e2 n& I ]4 D - * Copyright (c) 2010-2013 by 科帮网! E; h& j5 @9 V) m, Y1 L& W; a
- * All rights reserved.
c5 N4 `9 B+ @ - */
+ T& \3 O6 r- W: ~% w - package webService.client;0 q& A! {9 o. z F- X5 @
9 Q( |1 X; ^. Z3 w$ O- import java.util.ResourceBundle;0 t( e. k, \& v
- ! v0 G( J: R! D" L$ k3 Z( ]
- import javax.xml.namespace.QName;8 y! ~+ l2 ~2 z; Q, f! M) o$ J) ]
- * M4 q4 t }0 X5 f5 }
- import org.apache.axis2.AxisFault;! V' |. ^" v# t
- import org.apache.axis2.addressing.EndpointReference;( F3 P8 j$ w' i* p. `6 }9 {
- import org.apache.axis2.client.Options;1 O* X9 u% `8 H
- import org.apache.axis2.rpc.client.RPCServiceClient;
# ~8 C- q2 B. Q5 ]2 E( C! c - ! l5 T: Y( b! {6 u) X
- import util.Constants;0 V3 Z; [; C; b" `
- public class WebServiceClient {" p# ]( h1 `; s0 u3 `) K1 j. {; a
* t6 t6 @ N, @" j- private static String SERVICE_URL = ""; x2 h; i/ N% k5 a) S/ ~3 g: g- r& W
- private static String TARGET_NAMESPACE = "";( D* L' U8 F5 {6 ^6 k: m+ _7 ?& y
& C3 ~* H0 {5 i3 e" E1 ~ g- static{
- ^# v9 G7 K+ H0 d - ResourceBundle resource = ResourceBundle.getBundle("config");, ~0 b+ D) `9 {# R/ R
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);$ X% n1 M5 a, f: i
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
- x( }. k. K9 }, M: X" V - }
2 r p. @6 s6 a% p) d - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
. V3 f+ l8 a% H3 M1 Z+ ]/ }" g - EndpointReference targetEPR = new EndpointReference(serviceUrl);
/ g" e; Y# V, t: E - RPCServiceClient sender = new RPCServiceClient();
' q" b% F2 \5 E$ ~/ L - Options options = sender.getOptions();* p7 [" N+ k; E1 C4 ` B, N% ?
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s+ z+ }3 N$ G, g" [; m" y3 Q
- options.setTo(targetEPR);
* e. j6 W1 W+ Q7 D7 i - return sender;
( \, E' u a2 f( i- `9 u# z/ T" t - }
- ]/ ]" p, y* C% V$ H( F - public String listSchoolGroup(String text) throws AxisFault{
9 U7 b6 I$ L( \9 S, k - RPCServiceClient sender = initClient(SERVICE_URL);
( S6 ^& ^6 k) T$ X1 r: r7 y - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
$ u0 A; \8 d/ ?, m7 K6 f/ v( I - Object[] param = new Object[]{text};+ V0 e& c5 x7 _& H, w O- p' v, O+ C/ I" o
- Class[] types = new Class[]{String.class};
, s1 T6 d% w' J. e - Object[] response = sender.invokeBlocking(qname, param, types);
; A4 M, x, B2 J4 { - String result = (String)response[0];
& m8 a3 C! ?1 q1 Z+ X - return result;
; T+ Y: `/ c, Z( L# G% k - }
: {+ s4 j* c, n$ b; a; R. c - }
8 ^: `# M* Z" ]6 P! V4 O! R& [
复制代码 WSServer.java4 o/ A; X5 Q5 L3 U" S' |! d
- package webService.server;! e3 N6 i: n# H- W
( x; ?" G2 c, c: y' T8 K7 j- import util.Constants;' T) X# i! b, m, y0 @
- import util.Qq;
# {+ U8 a. V6 A& s* L - import util.SimsimiTools;
7 X, b' U2 J* O4 H5 F - import util.Weather;
7 z4 \" y, Y. P1 [! Z- e( r$ b5 h - 5 P1 y3 Y: s$ _3 x9 b4 i) n: ^& g3 W
- public class WSServer {7 A3 ~( l7 h4 U6 E i
- public String getMessage(String text) throws Exception{
1 U! S! C" H) }4 H6 m - String message ="";/ b8 l1 f1 m7 J0 c% M! D2 j0 I
- if(text.startsWith("#")){
9 r3 k& l. _3 ]6 ]# | - String str = text.substring(1, 3);
. z! d' a3 z. g0 o - if(Constants.WEATHER.equals(str)){/ [2 }4 _* k$ ^/ z$ J
- //天气查询
3 t' W- t% y. T9 v+ I - String cityName = text.substring(3, text.length());2 W2 b0 E2 @. C! }2 O6 y
- message = Weather.Weather(cityName.trim());) v) _! u8 B! i9 [2 W' y
- }else if(Constants.YUANMA.equals(str)){8 R8 O' m$ W/ w4 S8 g4 |2 Z
- message = "源码网 http://www.52itstyle.top";
! |- }% J& Y6 _ - }else if("QQ".equalsIgnoreCase(str)){
; {+ Q; R$ A; G7 r* D% \. `, D - //QQ吉凶查询
6 ~, h" h! R% b$ W( Y& i' H - String qq = text.substring(3, text.length());
/ D* Y# W0 D0 F( [* D - message = Qq.qq(qq.trim());
: f5 S0 A. F$ S0 P7 c) { - }else{9 ]) b/ J" T& s6 k8 Y; N- d9 Q+ Z2 P
- //小黄鸡
: R1 |5 k1 Z# ` - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));. b- }% t& J; o$ r$ f
- }
' g2 Z' ~8 z* R - }else{3 ^" R. x! R& d# f2 E3 k7 q
- if(text.contains("QQ")||text.contains("qq")){/ _8 Q: H5 e& c: X) h$ Q/ m
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
- i& b$ G9 @9 r- M2 u! i - }" l$ {" A) o& L4 O: E Y
- if(text.contains("天气")){
. v! A* L- _: Q4 H - message = "天气查询格式 #天气+你所在城市";
1 e! D# y# u6 ^, ^- K2 g5 ~ - }
( p& g( q+ q9 p! H: V+ T! g8 g - }( w4 \& v6 B1 Y
- return message;+ c* S: F* E6 {$ W8 P- y
- }
* U# c( J6 p- D5 A% w! F - }
8 j2 v& C9 l& ~
复制代码
& t8 M/ Q6 o% j' l: E V" z7 b项目源码下载地址:java版QQ机器人调用接口源码
' c8 }- J/ f+ X( l# I4 C
. K# G- u$ r: e9 I( J' e% H& v
! v& Y( s" x$ D/ U6 Z! t
9 X# W$ N! L+ m6 e3 ~. X) H |
|