TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
( K) g. w6 R5 e4 P4 i C; D9 r本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。- }0 c$ R/ q# ?; A
实现功能:! O# q3 J: k+ K+ E% U
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
! M+ F4 V) ^9 Z* T$ P& j9 _+ d二:实现QQ号码吉凶查询 输入#QQ+你的号码。1 d9 b( q3 N% f
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
* d) X/ u9 j! ?9 E' \4 @' M" m四:用户可以随意修改源码if判断加入自己的message。
! e! c# N$ [2 z4 u$ M$ q# u/ F4 N代码展示:
6 u) h% P) k" O0 G R# E/ ?WebServiceClient.java
) f0 T2 A; g; c6 j- /**
. d4 F* R' |4 V( X( i/ l - * Copyright (c) 2010-2013 by 科帮网
5 n% h( S6 U: x( ^) t! i - * All rights reserved.
8 ~0 m( a# L! o" {7 N; \ - */
; t2 n6 S, T+ O3 l - package webService.client;5 j% u1 [; B3 v1 A, _3 y
- . I1 w% Q5 r. T; w& z4 v
- import java.util.ResourceBundle;
2 }* h% _6 I: N - 8 w: O7 C' s0 c7 U5 W/ Y4 @
- import javax.xml.namespace.QName;
+ S* H% w9 |/ U0 v9 g) @1 r5 ~* ? - & d% b; Y {0 u& T0 a7 w8 k) `
- import org.apache.axis2.AxisFault;2 A2 O2 g3 |0 Z. M, y
- import org.apache.axis2.addressing.EndpointReference;" Y% h) n- Q. U2 }% w
- import org.apache.axis2.client.Options;
' ^$ Z) W- U- U - import org.apache.axis2.rpc.client.RPCServiceClient; b9 ]& C! \7 C
0 f1 d" h5 C' N9 P- import util.Constants;
4 ~+ P& V+ a+ b - public class WebServiceClient {/ ^9 N# i& G5 Y, c
- 8 D1 X3 ?( E) R; K0 m3 b) s
- private static String SERVICE_URL = "";1 e1 f1 a3 s# E3 I7 n9 D( R
- private static String TARGET_NAMESPACE = "";# ?5 q7 C* M4 q
$ h; a J8 o9 d% m- static{
. d5 T' i8 m3 y7 S6 E4 }3 Q' r2 j - ResourceBundle resource = ResourceBundle.getBundle("config");3 M" c4 C9 b: m2 D. E
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);; t6 v$ A. V- f' M9 R: S
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);1 U: }. b8 r$ B
- }
/ Z8 b ]4 b: e$ Y1 F/ K) Z I - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
& ]& M) X/ K1 R' h - EndpointReference targetEPR = new EndpointReference(serviceUrl);* e/ Y1 r; j- Y
- RPCServiceClient sender = new RPCServiceClient();- N/ \4 e- J' e9 P/ A
- Options options = sender.getOptions();
$ w& N# n8 S& k - options.setTimeOutInMilliSeconds(20000L);//超时时间20s2 r8 ]. ]% R, R- n
- options.setTo(targetEPR);
1 r) @! _. f1 W. h6 m - return sender;# z# K9 Y4 l) w# A1 ?; q0 u8 K
- }
" U3 K {5 _8 w - public String listSchoolGroup(String text) throws AxisFault{
% ~1 S$ {5 }5 v0 n - RPCServiceClient sender = initClient(SERVICE_URL);
8 t9 t3 c1 w. r: Z9 h0 M/ i' f - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
7 N# o) m% }" m. V9 U9 U) M* A - Object[] param = new Object[]{text};( B4 O4 f! l+ D: X% j+ J
- Class[] types = new Class[]{String.class};) X2 c1 M$ g# M% d# F
- Object[] response = sender.invokeBlocking(qname, param, types);6 z! g8 X; u6 ^- E H5 P
- String result = (String)response[0];
8 |3 D) O: ~; u1 r - return result;
7 I4 ?; }9 Y, I0 z& Q; M: ` - }
7 V4 x0 `) u8 l* c' V# `) o - }- ?/ G2 v4 J2 g* o
复制代码 WSServer.java/ b& R6 A( O& l8 ? q k$ W
- package webService.server;
' o: y1 }* H8 d- b2 i$ _! T - 9 L; @+ V+ e- i9 X
- import util.Constants;: j2 Y r G S8 h2 P
- import util.Qq;
: m3 k0 l2 X; ^8 ^1 d - import util.SimsimiTools;
" r) q. S5 i1 s: L W; X. Z - import util.Weather;
+ T8 J2 d8 b+ [! w
V6 \' y& B5 @6 i- public class WSServer {
/ j+ x7 \; H3 f4 C( j1 { - public String getMessage(String text) throws Exception{
& O; M u2 U7 j. |+ [ - String message ="";% a. w( M5 S0 \* @
- if(text.startsWith("#")){" R. c, e/ Y: E3 Q c4 }
- String str = text.substring(1, 3); ]2 \, _! M( F9 a5 a H
- if(Constants.WEATHER.equals(str)){6 {( F$ T9 |9 P
- //天气查询$ r8 k0 P9 O3 o5 M8 g/ E
- String cityName = text.substring(3, text.length());; G7 J+ C/ V- P3 I- J/ j
- message = Weather.Weather(cityName.trim());
/ A# i1 ?& ?! c* s4 A - }else if(Constants.YUANMA.equals(str)){
. A& R; p, v+ R; P' q: @1 ~3 K# I - message = "源码网 http://www.52itstyle.top";, ?1 f' W% \3 E" y/ ?
- }else if("QQ".equalsIgnoreCase(str)){
, b9 _" ^1 E1 ]# h& l+ X - //QQ吉凶查询1 [, J( X; Q1 U8 g* K9 [. N% [4 e
- String qq = text.substring(3, text.length());/ c6 b/ W0 V) O" [& U x. l, e( g4 q
- message = Qq.qq(qq.trim());* z. `! }" I2 a5 n6 [) o7 S
- }else{
. L! U+ `6 k( X - //小黄鸡
+ w1 Y! D) j' x3 g- M } - message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
; X9 i. H: R0 y$ v$ A - }& w4 n8 @% |" u% d
- }else{
1 l4 a* D l( v# c3 s% A; A - if(text.contains("QQ")||text.contains("qq")){
7 v, b; n8 G' J. b- I, f - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";5 h3 k. c3 Y5 p) o% H7 ?
- }
' h, B8 v4 r* a8 l - if(text.contains("天气")){
: l. t$ t, M/ V: r! A c2 G- p6 ` G - message = "天气查询格式 #天气+你所在城市";- H( h$ g* q+ R# v, Z0 z
- }
6 G: _6 ~; E- v1 E - }0 z9 W8 t9 U8 o9 r' M
- return message;
# P! C: G# ~. y1 H4 s4 c7 u8 z8 J - }; S4 n. y% \( m& P
- }
! m p; s B2 S; n! I$ a4 a
复制代码 : Y) s, w' G9 T! t/ S9 l2 c6 ^
项目源码下载地址:java版QQ机器人调用接口源码
9 M$ }* a& y: L' F9 G$ E" A/ g# K! V: \; P, J0 O! X+ E& [! H& t
% Y9 o% E" N; u+ B9 U; ~+ f
; k" n9 r/ x$ x( c |
|