TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
项目采用开源程序IQQ开源程序、内置webQQ协议、并且使用十分方便、直接调用即可。
* ^: q6 L' P z本项目采用webService接口调用可以不用重新登录QQ即可实现项目的修改。测试期间 多次登录QQ导致QQ被检测到异常还得手机解封。# [1 t- P( T# W/ I! V. p
实现功能:& A. j, m" X( q
一:实现天气预报的功能 用于输入#天气+你所在城市 目前只支持市区级查询。. e& R- I) S/ q: B6 W
二:实现QQ号码吉凶查询 输入#QQ+你的号码。. u" o' |/ u9 ^* v: j+ ?
三:实现聊天功能、调用小黄鸡接口实现java版小黄鸡。
# @9 T! C1 A8 [+ u! _# K) ], B$ }: g四:用户可以随意修改源码if判断加入自己的message。
A! Z3 e: [7 F2 D/ x0 w代码展示:
4 v k @/ L7 W) d6 nWebServiceClient.java
" q8 P6 [7 C( E0 K: a- /**! `3 y. P2 s2 T: V7 G) a
- * Copyright (c) 2010-2013 by 科帮网$ n7 O4 h, B, y& o$ T+ s: D) i
- * All rights reserved.
: t/ N' ^: f. s; A7 y - */ ]# x* S. E- M, X. B
- package webService.client;8 |" |+ p! H, D( R3 p
- 9 W8 c9 f1 U5 B* S
- import java.util.ResourceBundle;/ O, i% p$ ~! ~+ A4 [6 I4 s
& E6 r f! S7 w0 _$ m/ c$ @5 ?- import javax.xml.namespace.QName;
' O | F6 P5 Q9 f1 h, Z
& w( g5 v) r% C3 O. u& k6 C8 B- import org.apache.axis2.AxisFault;6 y9 U* q7 `. s9 K5 Z7 W; Y
- import org.apache.axis2.addressing.EndpointReference;8 w5 _# p. ?( N* P0 t0 Y
- import org.apache.axis2.client.Options;
0 z% g2 T+ x8 j7 F1 V5 Q - import org.apache.axis2.rpc.client.RPCServiceClient;
3 L6 Y( j9 ~$ b( }& a - 3 I1 V S, Z# l5 b2 y6 m) `/ q
- import util.Constants;
* ?7 L* U, S0 A# w% ]' i - public class WebServiceClient {
% E% |$ ~/ l, Z" X
0 K9 Z l6 [4 |8 a4 d' [; y& v% X' b- private static String SERVICE_URL = "";
' s' T: l7 a. {$ `! h - private static String TARGET_NAMESPACE = "";. z- {5 G1 w6 ?) o
- 6 P/ \1 }/ X/ L1 M; l
- static{
1 U+ Y: @1 @4 z - ResourceBundle resource = ResourceBundle.getBundle("config");2 P7 ?3 j( J" ?1 T
- SERVICE_URL = resource.getString(Constants.SSO_SERVICE_URL);. o8 }- n% f0 }+ P" G
- TARGET_NAMESPACE = resource.getString(Constants.SSO_TARGET_NAMESPACE);
" @$ X. b+ M4 @ - }' `9 n# y- X" c+ O5 M
- private static RPCServiceClient initClient(String serviceUrl) throws AxisFault{
* Z$ G1 O0 M2 a - EndpointReference targetEPR = new EndpointReference(serviceUrl);
9 e% h2 q9 D7 N4 r8 E; z/ h3 Z - RPCServiceClient sender = new RPCServiceClient();
" V1 w4 K% W0 J$ A! _0 p n" r: u - Options options = sender.getOptions();. Q. m+ D# R& ~4 Y7 `
- options.setTimeOutInMilliSeconds(20000L);//超时时间20s3 a6 g0 b4 J- M( Q' A! J) _" {
- options.setTo(targetEPR);
! s0 c- W- [% x4 B* p4 B - return sender;
% v2 y( v9 G* h; m0 o. H! x1 o - }
+ }2 R8 a+ s/ ^7 H) L! I( j+ C. l0 a - public String listSchoolGroup(String text) throws AxisFault{# @: j3 x: k- w+ Z4 x6 P. x5 u$ a" ~
- RPCServiceClient sender = initClient(SERVICE_URL);
7 s3 L8 B4 S' {7 v" `* k3 W - QName qname = new QName(TARGET_NAMESPACE, "getMessage");
6 J! T; w4 S* t6 W8 b: M - Object[] param = new Object[]{text};
% x% \. F" s& U - Class[] types = new Class[]{String.class};5 p" @4 u% ]! J$ _. k( F7 r0 a& _
- Object[] response = sender.invokeBlocking(qname, param, types);
0 I0 f; P8 p, H7 F+ A. l - String result = (String)response[0];
* X4 e2 U% O) n; T! Q- C) K - return result;
. O* _ W9 k* D* J; D3 Z# J - }
* f4 m) n* Q) ~1 T5 ~ - }' r p8 K) n+ j( ^; F" T ], ]* W
复制代码 WSServer.java+ b$ p6 A* g# ]# g' G# i1 f8 [* X
- package webService.server;* \5 |5 E# X1 x
- ; B+ ~2 a. }( }+ t K. F
- import util.Constants;4 z) k$ z4 r1 R) {4 i* K" Z6 q
- import util.Qq;
# x/ N6 r5 e+ T - import util.SimsimiTools;
8 x6 ?7 M/ z/ @3 A e - import util.Weather;
^( H( j `9 ?! S( A9 F - ' P0 |' R# J/ a5 V
- public class WSServer {
$ p5 m O c5 c* F - public String getMessage(String text) throws Exception{0 U" \# _6 G2 D8 _2 ?0 y2 x; M( C
- String message ="";
/ W1 l T: ^0 f* L' f! | - if(text.startsWith("#")){
' z$ Z0 @1 M" t8 w - String str = text.substring(1, 3);: u0 {* p/ c# u! p' ~! g' b9 e
- if(Constants.WEATHER.equals(str)){
7 M: |; Q( w; l' |" N9 |, X - //天气查询
- C9 B; ]7 Z8 x0 p+ r1 x& [) X5 n - String cityName = text.substring(3, text.length());5 _) `. x% \" M" O P) z
- message = Weather.Weather(cityName.trim());+ i; a4 H( e( }5 Q+ E: _! {
- }else if(Constants.YUANMA.equals(str)){0 d- D/ a7 \ Q i$ j" t1 c
- message = "源码网 http://www.52itstyle.top";3 k0 Q2 Q S* Q7 {/ }2 l( p( ]
- }else if("QQ".equalsIgnoreCase(str)){8 f7 m) B C3 b9 O
- //QQ吉凶查询
2 V. B: C3 w$ k& @2 H8 B8 p - String qq = text.substring(3, text.length());
5 h/ P0 V j1 K. O8 m - message = Qq.qq(qq.trim());6 j0 d$ z8 r# g( k
- }else{
/ I9 ^& n: C+ B; x, z& ^ - //小黄鸡1 ]' j' F* o. |3 m9 L0 g1 t7 s$ r" b3 v
- message = SimsimiTools.getSimsimiContentByNiuren(text.substring(1, text.length()));8 u. i& [4 {# g2 y, c$ l2 e0 F
- }6 n7 u; T( f6 s/ o
- }else{! V' @4 B4 B4 w6 q
- if(text.contains("QQ")||text.contains("qq")){ h8 u7 S- J5 I2 y# ~2 k
- message = "QQ号码吉凶查询格式 #QQ+你的QQ号";
+ l- i2 W3 N: e" _ - }
; x$ U! X! U+ e: i4 ]6 i - if(text.contains("天气")){
5 m7 ~ E7 j$ _) M/ K) A6 Z - message = "天气查询格式 #天气+你所在城市";7 E- s, m' @1 @4 b! K: \8 a& |8 ?! G- I
- }
6 t6 c/ i3 ]# @- T2 c% R( | - }7 O1 X8 Y% n9 D+ @- y* g. J
- return message;
$ q& g1 h4 e9 Y8 @$ s - }3 `! N. P# J/ {! i) |
- }. R7 t# A) A# m5 B1 s; s
复制代码
" |5 d3 w: F' j3 }, ?; A8 o项目源码下载地址:java版QQ机器人调用接口源码
# c* S! A3 Q* O. Y6 Y: t5 F/ O9 W- B, Y2 ?! E! B, h
& N8 K2 ?" I, L, k& Y) a6 l
# A$ S* z+ Y9 y. M |
|