TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
% Y* B+ M. H; n& S本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。/ n3 W7 Y5 m3 a2 h4 \' g$ R
实现功能:
1 t" K& o' ]; P6 N5 [一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。: {: q4 [( N% I
二:实现QQ号码吉凶查询 输入#QQ+你的号码。
; c0 G: u9 M; @. q. u) H三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
4 U' p% D# Z1 n( ~! M0 f- l S四:用户可以随意修改源码if判断加入自己的message。9 O- q0 L4 c! U% O
代码展示:5 u% X2 [, Q6 ^5 i
WebServiceClient.java& O9 X0 S. M+ T" S6 p% M8 O) z! g/ P
- /**
' E& g# \4 B% @1 n! s' W3 T - * Copyright (c) 2010-2013 by 科帮网
# N C, Y9 D- u2 ?4 C1 j! b& E - * All rights reserved. p' U, M+ [! N& M y( W. d
- */
, O/ |8 A( o9 b: j1 |& } - package webService.client;
5 v2 W. [. V6 P2 c
, i4 e3 k0 t% r% c1 o0 \4 O- import java.util.ResourceBundle;/ N4 ^# ?2 W( i% f
& K( x9 C+ m& d. v5 f- import javax.xml.namespace.QName;
* ]; m7 H/ z. ~. k - 2 \1 `- `3 p; C9 l% \. U; z/ z9 l
- import org.apache.axis2.AxisFault;, q0 M. \, ]' { q
- import org.apache.axis2.addressing.EndpointReference;. |/ K# \; D0 h
- import org.apache.axis2.client.Options;
: S$ p* v7 j9 G. y. O, f( v, P9 ` - import org.apache.axis2.rpc.client.RPCServiceClient;8 ?) G8 h0 q& f/ U0 ^+ B- B6 p
8 Z$ W# u3 Q @) C s# ~- import util.Constants;% c! O' B' `- n* [" w, o
- public class WebServiceClient {
6 r/ a. B' c5 O5 |/ Q0 B+ o
# h) q# b& r; x* I( w; [- private static String SERVICE_URL = "";& O0 ?1 X# e/ T' Q% X/ o
- private static String TARGET_NAMESPACE = "";3 O0 ~) A" w. o$ M }4 e0 s
- 4 h1 R. |" N `6 m' {# Y6 d
- static{
R4 L4 v4 D% m. W1 K/ d4 H - ResourceBundle resource = ResourceBundle.getBundle("config");" h! {' \. g2 t, b1 r0 W
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);& W" M$ g0 ?+ W
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
* O2 F& C8 r( P, n! w - }) w" p' j) L: ^, d0 U
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{8 r% E6 {. l2 y
- EndpointReference targetEPR = new EndpointReference(serviceUrl);. |* m" H# N2 U$ g" Q
- RPCServiceClient sender = new RPCServiceClient();3 t/ J- v* v* l. t6 g) I
- Options options = sender.getOptions();
: t2 k+ j' n( o" p7 e& n/ n/ r0 Q1 A6 x - options.setTimeOutInMilliSeconds(20000L);//超时时间20s
% p$ I5 y: Y) K - options.setTo(targetEPR);
* X" K4 d$ V( p1 S P6 O - return sender;! r! b# i# C! G9 [' q, @2 k7 O& y
- }
5 q, o7 f% Y W - public String listSchoolGroup(String text) throws AxisFault{
7 q2 K* ^1 P8 }1 @ - RPCServiceClient sender = initClient(SERVICE_URL);
5 Z: ?) M/ v3 A3 a9 S/ M - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
6 ?" d9 I% C" v - Object[] param = new Object[]{text};
6 G4 i3 o0 R0 k! K1 a8 m7 [ - Class[] types = new Class[]{String.class};
" x$ ~ u8 X- Q9 s9 z. c( ] Y( j - Object[] response = sender.invokeBlocking(qname, param, types);
6 a) I5 z, e7 ^* O- _ - String result = (String)response[0];
0 q- P n6 p/ R6 ?1 N- z3 C! L2 Y - return result;3 o* ?5 F3 T0 G% T' |2 [
- }* q( ~7 u. C; { ?. B+ A2 A$ q1 ~9 R
- }
! X$ c6 l8 u6 a4 z$ s" w
复制代码 WSServer.java+ _7 m$ o" W" @2 o d$ Q0 C6 i
- package webService.server;, a+ p5 S/ n/ h1 s
* L4 P- _6 |2 d1 d9 q! K- import util.Constants;
$ z9 s$ Y- e7 q v& ^$ P0 G5 C9 ] - import util.Qq;
9 ?' }/ {, P! [ G1 s8 `) R - import util.SimsimiTools;. G8 K8 @6 J; @1 F4 @# ?
- import util.Weather;
4 i/ n5 E! C; s+ k - $ ~" [+ G/ n- l% b1 T
- public class WSServer {
' \0 W* f3 {# ] - public String getMessage(String text) throws Exception{
0 F3 q9 u4 G( B l# [7 } - String message ="";
+ J+ r/ I9 R" V9 C# n$ x - if(text.startsWith("#")){6 S( M2 Q, e) W2 y" P' b* s( G
- String str = text.substring(1, 3);( _. d% s3 g' S4 \5 O
- if(Constants.WEATHER.equals(str)){
5 F" d6 D6 B, e* Q) b [) g' N - //天气查询
+ W% i& | G/ ~" ~0 B, \! h - String cityName = text.substring(3, text.length());
# Z% M) |* v& k; U8 w - message = Weather.Weather(cityName.trim());5 ?2 B) z& y( R; i
- }else if(Constants.YUANMA.equals(str)){( r* J& d: j+ A9 Z
- message = "源码网 http://www.52itstyle.top";
9 n1 j- J9 V% |: g - }else if("QQ".equalsIgnoreCase(str)){
% Q9 r p# m6 i: Z - //QQ吉凶查询
+ l- J& z' j" x0 [0 Z$ n& {( Z - String qq = text.substring(3, text.length()); r B+ f& v* Z' e' s. m
- message = Qq.qq(qq.trim());
* {. e6 c/ P# c - }else{; y0 c" D4 ` ~( N7 ~7 e; _4 E! }7 w
- //小黄鸡& ^0 @1 `4 I) ?9 A$ X! N% G# u
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
# V& I7 Q: p! w# \ - }7 W; c7 j+ o$ q3 o3 v& H
- }else{; |' P$ k. |" C. X
- if(text.contains("QQ")||text.contains("qq")){
' n% i9 P& A7 V( k, l: v - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";& s4 K4 m N4 [, ]' Q
- }
d+ U. g/ P7 v! b _+ @6 C/ ^ - if(text.contains("天气")){
- t. u1 F# X* J: W3 u - message = "天气查询格式 #天气+你所在城市";" W7 h% f3 A: Q4 x& s
- }/ R7 @5 w. I/ H$ t
- }
& G+ {( P3 N* n9 h4 F - return message;4 _+ s5 d6 c/ G7 v0 r9 a3 I4 ^
- }
. _2 i% v3 \2 T- q - }
4 x5 u+ ^5 n% x
复制代码
" }; o# W( z8 f6 E. y- |: p8 j项目源码下载地址:java版QQ机器人调用接口源码. X6 V1 h" k# N, b8 l
/ h$ C2 C. K% @
* X" Y" X. G- r" ]+ k; I% c. e3 J$ x$ Q1 @7 B& s2 \0 T% a9 }
|
|