TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
# d: F# o9 X- w2 v5 ?# D本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。) ~9 ]2 |- n9 c3 z
实现功能:# Q- q; B. [( W% z0 Z' B* v
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。7 V% k& j/ _8 r+ o) ]1 h5 j& m
二:实现QQ号码吉凶查询 输入#QQ+你的号码。
; p: t1 j% d% \3 W7 U三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
; H' d6 p& z* K5 A( ?- N四:用户可以随意修改源码if判断加入自己的message。7 |* \- Z( q4 C# }
代码展示:: V' n% {( Q5 p- B4 P4 Q
WebServiceClient.java5 c4 q- `# b# O* ~2 n, |
- /**$ N4 s4 u+ U& Y7 O8 ~) B L
- * Copyright (c) 2010-2013 by 科帮网1 |7 g. M; e( z4 F% ?
- * All rights reserved.
$ s2 }! E3 ^$ x - */
# p7 C+ L3 a% ~' m- W6 ^- D4 B1 ? - package webService.client;# `( H' ^: t2 t! c0 e
1 M* s: t5 @% q- import java.util.ResourceBundle;. B0 R2 Q; H. n3 v% D
- ' q( O6 U1 ]1 e3 U- m# ]; A ]; Z
- import javax.xml.namespace.QName;- y6 p$ T" k- J* J: U' F+ n$ p
! d2 Y j. L$ m/ {+ E3 X) T% M7 B- import org.apache.axis2.AxisFault;
0 G( B: r0 t& {! Q7 D - import org.apache.axis2.addressing.EndpointReference;
! b$ B. n$ u) g1 J8 n, y3 C- | - import org.apache.axis2.client.Options;4 t( \" \2 ? y1 `3 n. V
- import org.apache.axis2.rpc.client.RPCServiceClient;: d+ o: W& m5 \5 `5 }+ s
- 7 f4 G$ C$ E# ]0 N' Z( ~
- import util.Constants;
) h9 X5 L; e! [7 i) \/ l - public class WebServiceClient {
" M$ T& a$ Y9 x) p
+ W+ L2 F+ F% |9 B) k% `6 K8 x |- private static String SERVICE_URL = "";
! P" H" F3 Y$ ^4 H. U1 g) A - private static String TARGET_NAMESPACE = "";
' W/ Q$ H1 I+ S" J* y) L - 4 E: N/ ]0 E7 R1 E
- static{
9 y8 W" D4 j; V2 q. A7 ?( _$ _ - ResourceBundle resource = ResourceBundle.getBundle("config");6 i/ h3 g7 Z3 k; U8 [+ d* e. S* C& O
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);
3 x2 \6 U$ M" z# ^: l - TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);; E' [# u7 N- h- q, k& i+ r
- }
: g" _' q, ^$ o9 n" j - private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
* u; z l T/ s {" F - EndpointReference targetEPR = new EndpointReference(serviceUrl);
3 @5 f+ [ ~4 c0 y$ a - RPCServiceClient sender = new RPCServiceClient();
" l h# v; c# T1 Q3 A0 v+ z" h - Options options = sender.getOptions();
0 B) j4 ^$ `8 \, {( h4 h* p: `2 N$ B - options.setTimeOutInMilliSeconds(20000L);//超时时间20s
5 t+ S+ f" i! S! N6 X$ \ - options.setTo(targetEPR);2 k8 C: w0 {! ]3 Z' o
- return sender;, {' u8 o+ Z- S& _! c L
- }
# E# J6 _2 j3 }+ [ - public String listSchoolGroup(String text) throws AxisFault{( j0 n* j( E3 H9 p9 j7 z
- RPCServiceClient sender = initClient(SERVICE_URL);
8 x6 v. [. ~% U( L - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
# p% G9 W) R7 Y1 e6 u - Object[] param = new Object[]{text};! @$ i) x' _3 a; {4 z
- Class[] types = new Class[]{String.class};2 a7 D, \4 x% t( i8 f: H
- Object[] response = sender.invokeBlocking(qname, param, types);9 @* F" v! V! l. D
- String result = (String)response[0];
P4 R0 ?* X2 {8 K - return result;& w0 z, J/ B" O
- }
- E/ m( X# g3 M. _$ w0 A - }
% L! T% g4 R% S8 k+ L% w$ ~
复制代码 WSServer.java6 [; E1 L& Y) q
- package webService.server;
/ B4 i: E/ Q% F& j' w
6 k! }! C" M& t8 ]: N% S ?" `- import util.Constants;8 L0 R# ?. x8 T1 b/ G5 d( [0 L z# l; f
- import util.Qq;
* }! a5 i0 W9 ^7 P* H/ g - import util.SimsimiTools;- E8 H4 b" Y% [
- import util.Weather;' C! s7 o% T* e( ^9 s' g
! `; z, I) G+ r! _" J- public class WSServer {
. ^3 f2 Q4 R$ I7 F3 K - public String getMessage(String text) throws Exception{4 j [0 H% D4 ~0 W: p
- String message ="";* I7 k/ g5 G) P6 G
- if(text.startsWith("#")){
) r/ U( _5 j7 [0 J - String str = text.substring(1, 3);
/ B% U- z/ `+ J' [# v - if(Constants.WEATHER.equals(str)){
! E0 ]' y# d8 ^$ F# j, }$ ~ - //天气查询$ k2 R4 @. P0 R1 c
- String cityName = text.substring(3, text.length());
/ @, Y+ B: p+ [3 S/ |( {; c* X) f9 c - message = Weather.Weather(cityName.trim());
# e8 F6 T$ Y9 D! C& ] - }else if(Constants.YUANMA.equals(str)){1 e# q. ]$ n+ X5 e) b9 A) l
- message = "源码网 http://www.52itstyle.top";
6 B L' U3 \; \- x - }else if("QQ".equalsIgnoreCase(str)){" l6 W+ T! g9 I4 D
- //QQ吉凶查询9 Q/ C" W: _% x
- String qq = text.substring(3, text.length());
* I4 ]# t9 v8 G5 j - message = Qq.qq(qq.trim());
/ t7 v0 u4 V, r2 u( {" l5 {. w - }else{
6 d+ ^( \8 W9 X; r& A Q5 Q - //小黄鸡* L* d3 _- x3 V5 ]4 ], J7 ?+ {
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));
. M( y; p" u) b0 [$ w! G: S: ` - }! O7 e& A# E9 r0 a3 g9 a2 p
- }else{
- c0 U; |7 V5 C4 u' Q - if(text.contains("QQ")||text.contains("qq")){% n7 S1 O/ F' p7 A& W5 }
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
9 h! K! I- l* h1 q3 C' ~ - }8 u6 ^) J8 H+ b! \7 r @/ z; K; l
- if(text.contains("天气")){
2 Y) r8 W9 D4 B& A' ^- w# |1 S0 T) G - message = "天气查询格式 #天气+你所在城市";$ k4 Q& }; G1 N& _& ]1 B2 g
- }5 S7 d3 z+ F/ n& b5 E' L
- }
4 r7 b' L ~) g5 {0 S' V& y - return message;( ` X" h9 H4 H. G2 f
- }5 D: ]8 l6 ?6 ^2 B. Z
- }
+ | R7 e- J5 ~& _- q; Z
复制代码 # z/ @, L1 j) r# R- L! w+ ?
项目源码下载地址:java版QQ机器人调用接口源码2 @6 X) g* B" u9 c* i$ \
2 T! k' m1 W0 @2 y! z) N8 E/ k2 S* k
9 ]% k# u' G. `! N+ v7 |0 p
|
|