QQ 聊天機器人小薇發布!
來源:程序員人生 發布時間:2016-06-06 08:54:05 閱讀次數:3402次
簡介
XiaoV(小薇)是1個用 Java 寫的 QQ 聊天機器人 Web 服務,可以用于社群互動:
- 監聽多個 QQ 群消息,發現有“感興趣”的內容時通過圖靈機器人進行智能回復
- 監聽到的 QQ 群消息可以配置推送到論壇某個接口上,以實現論壇彈幕或動態聚合效果,請看實例
- 在論壇代碼中調用小薇進行 QQ 消息推送,比如論壇有新帖時自動推送到 QQ 群
- 加小薇為好友后可通過暗號(key)讓她群發消息
總之,如果你需要1個連通 QQ 群和論壇的機器人,小薇是個不錯的選擇 :smirk:
作者
小薇她爸 Daniel,媽 Vanessa,其他好心人可以在這里看到。
FAQ
為何要單獨做成1個 Web 服務,而不是1個依賴 jar?
做成依賴庫的話會隨利用部署,從開發的角度是比較方便,但有個致命的問題是利用1般是部署在云端,而登錄掃碼是在本地,這樣會造成 QQ 的異地登錄,致使很多問題。
所以需要將小薇部署在本地,保證用手機和小薇啟動后 QQ 不出現異地登錄。但是這也需要解決1個問題,即需要為小薇提供“內網穿透”的能力,比如使用 ngrok,具體可參考這里。
為何會出現“發送失敗,Api返回碼[1202]”?
這個問題是由于 QQ 服務器判斷消息有問題時的返回,具體可關注這個 issue。
啟動
- 安裝好 Java 1.7+、Maven 2+
- Clone 本項目,并在項目根目錄上履行
mvn jetty:run
這樣就能夠使用默許的配置文件啟動小薇了。
配置
配置文件主要是 src/main/resources/xiaov.properties:
- api.key 定義了論壇調用小薇時用于驗證的口令
- turing.api & turing.key 定義了圖靈機器人的 API 地址和口令
- qq.bot.name 定義了機器人的名字,這個主要是用于辨認群消息是不是“感興趣”,比如對群消息:“小薇,你吃過飯了嗎?”包括了機器人的名字,機器人就對其進行處理
- qq.bot.key 定義了管理 QQ(加了機器人為好友的 QQ)發過來的消息群發的口令,需要消息開頭是這個口令,驗證過后才會群發后面的消息內容
- qq.bot.pushGroups 定義了群發的群名,用
,
分隔多個群
- bot.follow.keywords 定義了監聽群消息時的關鍵詞,碰到這些詞就做處理,比如對群消息:“如何能在 3 天內精通 Java 呢?”包括了關鍵詞 Java,機器人就對其進行處理
- forum.api & forum.key 定義了論壇 API 地址和口令,小薇會將所有監聽到的消息通過該 API 轉發到論壇
API
論壇推送 QQ 群
- 功能:小薇提供給論壇調用的 HTTP 接口,用于將論壇的內容推送到 QQ 群
- URL:/qq
- Method:POST
- Body:key={api.key}&msg={msgcontent}
QQ 群推送論壇
- 功能:由論壇提供給小薇調用的 HTTP 接口,用于將 QQ 群消息推送到論壇(這個接口是論壇實現的,這里是給出小薇的調用方式和參數)
- URL:{forum.api}
- Method:POST
- Body:key={forum.key}&msg={msgcontent}&user={hexuserid}
鳴謝
小薇的誕生離不開以下開源項目/產品服務:
- Smart QQ Java:封裝了 SmartQQ(WebQQ)的 API,完成 QQ 通訊實現
- 圖靈機器人:給予了小薇抖機靈的能力….
- Latke:簡潔高效的 Java Web 框架
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈