TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
! F# x6 t' k* U/ S4 H- P本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。
; H/ Z# Q# R. G6 W) t实现功能:" W* Z; E6 m! z7 b
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。/ V9 A$ C4 [. x# D p& ~- |
二:实现QQ号码吉凶查询 输入#QQ+你的号码。$ ?1 [' ^( h" T
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
- q; N0 ~" d2 B: @0 B. d; r四:用户可以随意修改源码if判断加入自己的message。
% I' y; e+ ~9 @+ g4 R' g: ~代码展示:
0 ^- M4 t2 Z# O# z8 vWebServiceClient.java
, J5 o0 c! [- Y7 }0 ]1 ?& e+ N6 a- /**
, B, q ~( {( C, Y# G - * Copyright (c) 2010-2013 by 科帮网" p. B: p5 Z, ^) t4 d" t
- * All rights reserved.
1 f, \) B% T- t6 _0 W! l/ L6 r. \. ] - */
- S2 n' P8 H! m* O1 B+ x6 U3 A - package webService.client;8 ?' K, W3 d# R1 P
- ; o5 k1 D2 T; n. F( \, h' J
- import java.util.ResourceBundle;
3 p' V7 [* j; F9 }, q2 u) ` - ( C* j$ _ F4 e0 v4 x
- import javax.xml.namespace.QName;
) s# u1 C# T7 Y f$ d. M# I+ ~" R; q1 k - 8 I8 M0 \6 u- Z; _3 T2 K
- import org.apache.axis2.AxisFault;
- Q e/ l' g7 [6 x - import org.apache.axis2.addressing.EndpointReference;
# a6 l/ e r: f# H. Y3 c - import org.apache.axis2.client.Options;( u# E" E. `2 C4 [& C6 J4 |
- import org.apache.axis2.rpc.client.RPCServiceClient;
0 X6 ^) Z" p0 Q' {' r' d& _) u$ v
& _5 Z& j; z; o' U1 y+ j& H- import util.Constants;0 [4 w4 K# P0 H
- public class WebServiceClient {
- s4 M& Y4 L+ C; ~+ g - 7 H& x+ X: A/ S) W: y
- private static String SERVICE_URL = "";
+ v: L6 |0 s, O& F: r - private static String TARGET_NAMESPACE = "";
7 @/ g1 g: c' [) ^9 A) M+ Y$ M
" U% ?$ w6 ?- P3 I- static{
* _4 v. H& u9 \. B: _ - ResourceBundle resource = ResourceBundle.getBundle("config");
; a0 L5 t: y! L - SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);# d2 k, E; S& A) ]! U# P3 {# I: p
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);" [8 d0 r% u; Q
- }# ^1 D9 \. E1 E+ @2 ~
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{# f& o }' \! Y C
- EndpointReference targetEPR = new EndpointReference(serviceUrl);6 t5 Z+ j: x3 d9 y6 v; l! Q
- RPCServiceClient sender = new RPCServiceClient();
- f; X# f$ w& X% \& s: h! ^. q: }7 _ - Options options = sender.getOptions();
8 o0 s4 F4 k/ L) A: U2 {' y - options.setTimeOutInMilliSeconds(20000L);//超时时间20s
" J. |. e# d. H0 Z! h% J - options.setTo(targetEPR);; o6 ~* v/ O! A, B
- return sender;
" L q: F! o4 s - }: d- e2 I* A, G
- public String listSchoolGroup(String text) throws AxisFault{
, P% V2 W5 @6 E, M6 N7 S - RPCServiceClient sender = initClient(SERVICE_URL);
0 k- v* H5 G/ r2 I - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
1 a B* G- l5 y# A! p; ^# Z - Object[] param = new Object[]{text};
/ X( q4 {4 x- j- u+ M - Class[] types = new Class[]{String.class};, f6 r6 D- m5 D9 U! ^# g
- Object[] response = sender.invokeBlocking(qname, param, types);
# s; ?& _1 L6 {! C7 z$ S: I8 R - String result = (String)response[0];- J4 o% T% N: ?0 l; u
- return result;2 `0 {& \/ l2 M6 G
- }8 q( [7 D. F, p! V/ w8 u* y0 Z
- }
& P. e- O# y& x, U) y6 j+ T
复制代码 WSServer.java
+ P9 }% c8 H7 x" R- package webService.server;% F" m# t1 w T% Q0 `3 G4 P
) @4 y7 `1 o8 K' H! d$ z- import util.Constants;
$ }7 U- W" J4 m/ j - import util.Qq;2 c% _( y9 Z( v' u7 ~, \( @
- import util.SimsimiTools;
4 p/ U4 [$ u8 W - import util.Weather;
" t. [5 W8 G% V - ) y5 M0 D! G+ g9 K0 @
- public class WSServer {
4 I- p* d0 y+ \& P4 _4 Y) U* E* L - public String getMessage(String text) throws Exception{
+ n7 p7 N- t' C4 h - String message ="";5 S9 H3 j! [% e4 u$ m2 e' E
- if(text.startsWith("#")){
! Z( L9 C z! i; g% c+ ^9 k. a - String str = text.substring(1, 3);
/ e$ K) t" n, [1 s6 t - if(Constants.WEATHER.equals(str)){
: O+ ^& i4 g1 s3 T, l$ g. n - //天气查询
+ y g& j Q7 ~7 A" t' O - String cityName = text.substring(3, text.length());! h4 B0 H) W0 E* z
- message = Weather.Weather(cityName.trim());3 X2 X" ]7 j9 ^" p$ @; f4 ~* H
- }else if(Constants.YUANMA.equals(str)){2 y6 K& E: O* l7 n" z' l9 Z4 z4 E
- message = "源码网 http://www.52itstyle.top";+ [) g" f2 h/ L& o
- }else if("QQ".equalsIgnoreCase(str)){8 i' u$ W- ?4 D" w9 \0 S
- //QQ吉凶查询' l {' h$ V O. s1 u
- String qq = text.substring(3, text.length());
, o( U$ W2 j t( f* b: v* f$ r( ? - message = Qq.qq(qq.trim());
, C, k: h# l! |" V } - }else{! J- I% B9 h9 r
- //小黄鸡
4 {7 I5 @2 Y! x3 V7 j2 v - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
3 M5 s4 T( H4 O, Z5 B - } q: R X: w) S: U
- }else{
; ?5 ]) G! s2 T4 d( a; Q4 ]4 G - if(text.contains("QQ")||text.contains("qq")){
0 o! I! G9 t# j# a" H8 S% X$ d - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";% Y6 `" n8 d- Y
- }
- W( n- Y% P! m/ y2 B: d& w - if(text.contains("天气")){
8 H0 L: S I* d, C8 K9 C* a - message = "天气查询格式 #天气+你所在城市";! Z' v8 ^* ~9 s
- }2 J; @4 X7 d% U2 L0 T- B2 c$ k
- }
* Z$ m8 g6 O0 q4 H* w - return message;
& e# k" m: |- X- a5 f9 r - }6 O) Q2 c7 K# K$ }( x2 h
- }+ M4 ~+ O0 \, ~. r4 r6 t
复制代码 8 ?' w9 x1 G3 R2 a5 E
项目源码下载地址:java版QQ机器人调用接口源码0 c1 J. E; f$ m' q- H/ r
) T5 q! T+ f/ \9 F4 d
0 p4 _' k4 K( j5 O0 A1 t
; C f+ A/ j4 T# y/ Y0 H |
|