TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。6 W: Q ]: \9 u3 x
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。1 V* {, E* J( p1 Q7 X0 c
实现功能:; a0 ?4 M$ g, E3 M) `1 U8 ]; R& {7 \
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。* V& Z5 ?8 R+ P1 J& w+ v/ H
二:实现QQ号码吉凶查询 输入#QQ+你的号码。
) j1 S; e' [( A2 i, i( u三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
, H0 o4 J6 j7 d四:用户可以随意修改源码if判断加入自己的message。7 \- D y7 X) a) J: a$ | Q" g5 h
代码展示:
8 Q3 i- R) j g" VWebServiceClient.java
# C; p" z# ^$ v$ w$ y. C- /**8 u! b: j; p3 E& ?
- * Copyright (c) 2010-2013 by 科帮网
4 R1 J% e; A" s( B8 n+ R7 w - * All rights reserved., |4 ?+ e; m, a7 w7 N
- *// A$ g2 E; F$ z8 [: X
- package webService.client;; \8 |- @, r( {) N1 y) W
" i% ?. j6 Z+ @9 L% f- import java.util.ResourceBundle;
& I! k N: f8 g1 @
m0 x* z" M" d- O, M+ o1 j1 R- import javax.xml.namespace.QName;- L# P9 _- o# L7 H2 h! S p7 O
3 x" U( [# l/ W- y& H6 L- import org.apache.axis2.AxisFault;
, U5 o3 q1 C8 ~3 X+ [+ c0 A4 j - import org.apache.axis2.addressing.EndpointReference;
# I: ?: m" j) w$ Q - import org.apache.axis2.client.Options;
3 T0 O; [1 M/ q! S6 t0 t - import org.apache.axis2.rpc.client.RPCServiceClient;: ?9 S( V4 f- ]
- }; G1 \5 ^, e+ E- import util.Constants;7 g N- i* s) p* E/ X$ \* }; K
- public class WebServiceClient {
( Q) M" f4 p4 r% z, y5 y% | - 7 I1 t/ ]3 H/ E" R1 o# A5 R# g
- private static String SERVICE_URL = ""; @8 _; V i& \2 C0 i/ X: H: i
- private static String TARGET_NAMESPACE = "";4 [4 p! c; h9 H( b+ _3 Z5 H. w! c
5 e9 N% A& J1 C& @ ^/ L q9 w/ G3 N- static{
3 [! P2 J' o [0 M- n - ResourceBundle resource = ResourceBundle.getBundle("config");
/ e: O3 E7 b) {! q8 O( t" t' B+ i - SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
" N$ S) c: r1 p - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);* g- G$ W( w; ~9 m+ T! o( o. }
- }
: [5 M% w6 H# s! _5 Y& s/ E! K - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
$ h! G y% \# j- N0 g3 ^ - EndpointReference targetEPR = new EndpointReference(serviceUrl);# p" B: {+ I' l+ C: F0 b
- RPCServiceClient sender = new RPCServiceClient();3 H4 |5 r% \% g8 e/ c" c$ d* E8 y
- Options options = sender.getOptions();: w5 j. U$ ^$ P5 ?
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s
4 G( j- Q4 X* [1 J - options.setTo(targetEPR);
* G) c! t9 v, G - return sender;; i( } m+ E; J! u9 ?7 \8 S0 q
- } y5 a% b2 d# l. v L& u
- public String listSchoolGroup(String text) throws AxisFault{
2 ?9 f2 V+ t w# ^1 ^$ I - RPCServiceClient sender = initClient(SERVICE_URL);
5 Z h) L* R' V/ z% Z! l3 ] - QName qname = new QName(TARGET_NAMESPACE, "getMessage");; \+ d0 [( e# ?2 B. Z4 F" U( J
- Object[] param = new Object[]{text};
6 v5 T: l3 ?" B - Class[] types = new Class[]{String.class};. l' {/ o8 n x/ P1 K
- Object[] response = sender.invokeBlocking(qname, param, types);
, k- R% y! S6 r- J d, m, M - String result = (String)response[0];
$ m" T- a! y" I3 W - return result;
' I: k6 {1 ]* H6 w( ?5 } g% ^8 x - }
1 F. f$ \; N) G( S- N - }
G0 V' ]! `! [7 \
复制代码 WSServer.java# l1 n) y D% q& I* i( W* A7 A" n4 t9 M
- package webService.server;
7 H9 s3 m3 V P+ r4 E4 y8 ~1 q2 K+ ~ - : m+ \* E' ^- L/ q6 q& O
- import util.Constants;
/ P0 l. E1 Q0 M - import util.Qq;
c' k# i) r' _ - import util.SimsimiTools;
; F' X) k" ?& E - import util.Weather;2 ?3 G3 d5 ?& w8 b8 e# o
- 9 m/ U& p, \6 y/ C' _0 ?( x, m. \
- public class WSServer {% q# ^5 w( R8 p1 W( f
- public String getMessage(String text) throws Exception{
* N$ y& { V7 ^ - String message ="";
6 F* Q, o& k- X - if(text.startsWith("#")){& t4 {" W, N8 f+ p
- String str = text.substring(1, 3);
9 n; I, x+ |/ r6 ]7 h$ R& i7 J) g - if(Constants.WEATHER.equals(str)){
* g. ~, c/ E/ Z( z- B7 _ {3 i - //天气查询6 ~, t8 D9 ?2 R0 T5 P! u
- String cityName = text.substring(3, text.length());/ e$ i7 p( t! v, c( g
- message = Weather.Weather(cityName.trim());
8 X* @( F5 Z6 F8 ^3 s - }else if(Constants.YUANMA.equals(str)){
2 o; E! M6 H6 L# J - message = "源码网 http://www.52itstyle.top";6 v5 a* {- t# d; o, Q
- }else if("QQ".equalsIgnoreCase(str)){
# ]- L6 l9 m O' _ e9 [* b4 g - //QQ吉凶查询
/ l# G }' l$ r1 |( N# g. n. @ - String qq = text.substring(3, text.length());' Z3 `& m- k# [4 j% X [0 c
- message = Qq.qq(qq.trim());
2 N: g- Z. n! o- A% p. s7 n - }else{
8 ?$ X' A8 ]: a% Z, M: X6 D - //小黄鸡1 ]1 `+ e# z( Q5 [( L/ r5 r0 i2 V& W, P
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));3 H+ B+ T. N7 `# W- V
- }6 M5 R3 q: o7 G9 ~" a( w
- }else{$ G. { {6 G. c/ q
- if(text.contains("QQ")||text.contains("qq")){
8 u) o$ y4 N7 d% P& k, W - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
. {/ I/ z+ C" r) {, Q9 b- V - }( R3 O9 Q3 w4 n/ O) G
- if(text.contains("天气")){6 l' x: K* U4 _& X" }
- message = "天气查询格式 #天气+你所在城市"; E9 @ q/ `+ ?: y
- }( G1 L% L* @( ^3 P* J) y' p
- }
, Y# o, |1 D! @; p, c9 I* K% C6 | - return message;7 Z I2 @, f3 k
- }) \- T( } L Y5 n ]* M7 T
- }
" y2 L2 T/ @5 T* |
复制代码 - L2 N# v0 Q2 f y6 R
项目源码下载地址:java版QQ机器人调用接口源码8 O4 R3 R$ Q2 D/ |
( p5 f n- g3 z$ N3 F. E( ^1 G
2 t- Z8 G% U, S" r+ x. U4 F3 J [! m
|
|