個人微信(非公眾號)微信機器人,依照指示自動回覆好友訊息、群聊陪聊、查天氣、查垃圾分類,基於ChatApi-微信建置。
主要是想寫一個群助手,作為在群組的工具使用。所以這個機器人回應的訊息主要是以指令前綴開頭的。考慮到國內手機輸入法的習慣,預設指令前綴是兩個問號,因為拼音9宮格的佈局問號在快捷欄裡,方便輸入。
對於具體指令,希望漢字優先,縮寫為主。
fastjson
1.2.58爆出重大漏洞,升級為1.2.60
每日一句使用線程池調度,修復了先前使用Timer
導致的調度穩定性差的bug
新增查看每日新聞指令、查看知乎熱榜指令。新功能必須開啟redis才能使用。
垃圾分類接入AToolBox介面。 AToolBox的資料庫比較全一些,還有近似詞提示,但是介面有點慢,必須開啟Redis。如果沒開啟redis緩存,可以換回LAJIFENLEIAPP。
新增Redis緩存,可將天氣查詢結果、垃圾分類查詢結果緩存在Redis。如果自己沒有Redis,可在設定檔中關閉快取。關閉快取不影響現有功能,但可能後續會更新一些依賴redis實現的功能。
需求環境:jdk 1.8+、Maven
全域設定檔是resource/config.properties
。
快取設定檔是resource/redis.properties
。
程式入口: WechatBot.java
啟動程式後打開控制台輸出的二維碼鏈接,並使用微信掃描。
提示:任何非官方途徑登陸網頁微信都有可能導致封停帳號登陸網頁微信的權限(不影響其他端的使用)。建議使用小號。
預設的指令前綴是兩個問號: ??
,中英文皆可。指令前綴+具體指令組成一條完整的指令。如北京天气
是天氣指令, ??北京天气
是一條完整的指令,當具有天氣模式權限的群組裡有群成員發送??北京天气
時,此機器人會自動回復當日北京天氣訊息。
指令前綴可在設定檔中自訂。
A. 获取详情 B. 查天气 天气 北京天气 海淀天气 上海天气 深圳天气 C. 查垃圾分类 电池 无汞电池 塑料袋 D. 当日新闻 新闻 E. 知乎热榜 知乎 知乎 1 知乎2
程式監聽對應群聊內容,當監聽到以天气
開始的語句便查詢對應城市天氣並自動傳送到群組聊天。例如:北京天气
、北京市天气
。只支援國內(大部分)市、區、縣查詢,不支援省。小部分地區由於介面資料遺失的原因不支援。
若監聽到?
、天气
,會依照發送人微信名片上的地址寄送今日天氣。
完整指令举例: 天气 北京天气 上海天气 海淀天气
將設定檔autoReplyFriend
設為true
,便自動回覆好友訊息。不會回覆黑名單中好友。
此功能預設只對白名單的群組或好友開放。機器人會回覆任何白名單的發送者的訊息。
提示:免費的機器人都是人工智障,所以此功能建議作為測試、娛樂使用。
當一條指令(去除前綴後)以問號?
/ ?
開頭時,此指令為查詢垃圾分類指令。輸入具體垃圾查詢垃圾分類。如???电池
、 ???无汞电池
。
完整指令举例: 无汞电池 电池 塑料袋 卫生纸
在配置中啟用每日一句,可在指定時間向指定群組發送當日天氣和名言名句。當日天氣使用的是api.WeatherApi
,每日一句使用api.EveryDayHelloApi
。
如果當日配置的時間已經過了,則會從隔天開始正常執行。
向好友發送訊息尚未啟用。
新闻
知乎 知乎 1 知乎 3
智慧機器人API:https://www.sojson.com/api/semantic.html
青雲客天氣API:https://www.sojson.com/api/weather.html
友情提示:人工智障線上陪聊,冷場利器、分手大師。
RollToolsApi:https://github.com/MZCretin/RollToolsApi
金山詞霸: http://open.iciba.com/dsapi/
LAJIFENLEIAPP: http://lajifenleiapp.com/
AToolBox: http://www.atoolbox.net/Tool.php?Id=804
知乎日報:https://news-at.zhihu.com/api/6/news/hot
本專案離不開以下專案的靈感,在此對開發者表示感謝:
EverydayWechat
微信助手:1.每日定時傳送客製化訊息給好友。 2.自動回覆好友。 (Python)
xuxiaoxiao-xxx/ChatApi-WeChat
Java版本微信聊天接口,使用網頁微信API,讓你能夠開發自己的微信聊天機器人
Apache License 2.0