TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。! f- g7 a. _1 _* q1 E
本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。
9 f3 \2 ^( ` E* { x实现功能:# q4 ^+ J+ ?) g a' n
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。
4 c" K# q1 e1 ~3 e/ r) P0 T二:实现QQ号码吉凶查询 输入#QQ+你的号码。# E) c" U* |8 F% `0 [" u
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
* y [& `6 j# n$ y* j; T* p( Z! A四:用户可以随意修改源码if判断加入自己的message。( {: h+ m) O! [) N2 d, M
代码展示:# ?( I" J" o! S
WebServiceClient.java
3 r$ A% I+ a9 b7 E$ `- /**
8 _8 G; Q) u k K: `( C; t+ I8 x3 d - * Copyright (c) 2010-2013 by 科帮网
; A+ A, l3 T# W3 f - * All rights reserved.! L" I- W) g5 V9 }
- */
3 I* B& B4 g- \5 Q - package webService.client;$ D" G, E( }- j# I
- . h8 |8 G4 A- S K
- import java.util.ResourceBundle;: k' C" ]7 n0 o' [$ H
* o% G' k, D2 l# d) ~" U- import javax.xml.namespace.QName;) ?1 l" G9 [$ B5 D! [* r
- 4 k5 o/ t2 O. |
- import org.apache.axis2.AxisFault;
6 ^4 U z' K4 | - import org.apache.axis2.addressing.EndpointReference;
6 @* c/ U' W/ k2 Y - import org.apache.axis2.client.Options;! l# Q1 Z; j8 I) |* y; ]5 L, S
- import org.apache.axis2.rpc.client.RPCServiceClient;
2 r% B# q6 u2 w! D
1 F5 a5 B0 K- g- import util.Constants;
Q1 A% K, _9 A - public class WebServiceClient {
% k' U* ^4 r/ U! i3 | _& g - 7 \% A$ [3 Q8 C0 X, _5 [! K
- private static String SERVICE_URL = "";3 X# h, w6 p+ M9 C7 r$ R f7 [7 z
- private static String TARGET_NAMESPACE = "";
% D( { v/ R7 S+ C3 U8 r$ L - # u* S d$ Z! d9 Q
- static{' {" w: I+ S/ r Y) N
- ResourceBundle resource = ResourceBundle.getBundle("config");
, T7 o0 s0 ~1 i2 ?% p6 L0 X1 k- N - SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);2 D* b4 k( N5 D4 `% ^+ o
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);! X6 i$ }# ^. y
- }4 D) B0 v8 M- r& B/ W, d2 B
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
3 y7 q ?( H W0 P - EndpointReference targetEPR = new EndpointReference(serviceUrl);
6 c+ [# V: `* n - RPCServiceClient sender = new RPCServiceClient();
" D: ~' ]* B* s7 H3 O# V - Options options = sender.getOptions();
0 V5 n8 @# Q+ N$ L+ [ - options.setTimeOutInMilliSeconds(20000L);//超时时间20s! F$ o0 S7 p0 r5 n
- options.setTo(targetEPR);
, ]) a- H) Y2 q' z$ o0 x! Q& w - return sender;
1 R) r( ~7 E, g8 ^ - }
) H& M5 N3 S. D/ U2 A4 [* L - public String listSchoolGroup(String text) throws AxisFault{
. b# {8 o3 z+ Q. p/ L1 z - RPCServiceClient sender = initClient(SERVICE_URL);5 {9 a% u. X U; p! M0 v5 ~
- QName qname = new QName(TARGET_NAMESPACE, "getMessage");
. m" N6 I7 x5 v% a" i - Object[] param = new Object[]{text};
4 C/ p/ X- g) H& y; x0 z. S2 T& X- I - Class[] types = new Class[]{String.class};6 P5 {. Z7 \! S
- Object[] response = sender.invokeBlocking(qname, param, types);8 h# p' |- b6 f/ q9 ^2 s# A
- String result = (String)response[0];
8 h2 R9 S3 G7 t; n - return result;* y1 T" }, v+ D6 M
- }, e/ x9 t3 L7 @* t" R; Q
- }
5 \( _- l M6 w5 V% q. q
复制代码 WSServer.java
+ J+ t% Q1 M' x7 V- package webService.server;+ _3 e2 p' j9 i/ q7 h
- ; e1 d, a. A. N2 T
- import util.Constants;
0 v, L+ j" i: x- {) [* W G% G/ n - import util.Qq;
8 i1 `+ U' t1 m6 {% s - import util.SimsimiTools;
/ W' o( {+ V" i9 k6 b - import util.Weather;
- J9 G: r; e1 C
. K0 k# K5 K' ^* h- public class WSServer {
% ?+ \4 s W0 C! f) p - public String getMessage(String text) throws Exception{" w1 r; Z) u& h- V1 o0 u
- String message =""; B, D" z0 x9 `: ?# n: I
- if(text.startsWith("#")){
% S5 i. K, }! u, z - String str = text.substring(1, 3);
0 Q6 x9 F1 ~2 _9 \3 l - if(Constants.WEATHER.equals(str)){
5 G) {; b- ~0 P - //天气查询+ K7 i$ Q: }" Z0 X+ E. F1 i u
- String cityName = text.substring(3, text.length());
$ x C, o/ L" B2 d8 M$ p& v2 d - message = Weather.Weather(cityName.trim());0 }9 P) v; k6 l
- }else if(Constants.YUANMA.equals(str)){
* ^% r* J, w( ^8 P* b - message = "源码网 http://www.52itstyle.top";
/ p) |# z$ B- p" O: M' _/ ?8 x" R( R - }else if("QQ".equalsIgnoreCase(str)){; }3 c- @% \( }* w9 z
- //QQ吉凶查询
6 Z) e; K1 h7 l+ P2 | j0 L% M - String qq = text.substring(3, text.length());
+ v" @; F) S' ?/ D9 G+ E - message = Qq.qq(qq.trim());
/ F: ]" [* v T0 v4 D - }else{$ J, q& ^5 b. k! y8 G- d
- //小黄鸡9 i4 T& z5 {8 [3 Z% m
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));) B; D$ X3 d# M$ z
- }' _ z, \1 h, X5 ?# }. z+ Z
- }else{
+ X! o8 ?) b9 q E2 k* q0 Z - if(text.contains("QQ")||text.contains("qq")){
+ ]$ {: ]9 f+ R# G) w* @ - message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
6 p% { V; ]6 c2 f/ ]+ f - }: ^: y9 u9 ]5 k% p/ ?& M
- if(text.contains("天气")){
! j# u: m1 z k3 n - message = "天气查询格式 #天气+你所在城市";
! p- E& L& G6 r! n) ^# x3 l+ P( p2 ` - }
% {& t. h2 Z- B5 T% U! l - }0 `0 K3 t9 ^1 t$ }6 C* j2 k
- return message;! A! a1 Y4 H m' m( @) F
- }+ ?- O/ L' F5 U8 h. P6 x
- }8 _: d8 R& r7 T3 N
复制代码 - i# K1 P* w. K8 z, W) k9 Z% t
项目源码下载地址:java版QQ机器人调用接口源码
; @4 G$ ?1 j: U+ m
- s$ M3 P" P% W8 p. p; h' X3 v* s9 O: W* X5 a0 w0 ^
/ R" p ?; y/ g& Z+ u7 ~' \
|
|