基于python Wechaty的微信群虛擬幣報價機器人
Wechaty Blog:wechaty-bot-of-coins
本項目基于python-wechaty庫,通過幾行代碼就能實現(xiàn)微信機器人的基礎功能。
項目地址:coins_market_push
實現(xiàn)功能
群聊中加密貨幣的報價
- 檢索群聊中的加密貨幣幣種關鍵詞
- 幣種匹配成功,從網(wǎng)絡獲取加密貨幣行情,目前支持三種平臺
- 在群聊中發(fā)送加密貨幣行情信息,并@發(fā)送者
效果展示

使用步驟
1、項目配置
class Notice:
EVENT_NAME = 'notice_python'
TOKEN = '{your IFTTT TOKEN}'
KEY = '{your notice key}'
class Zengr:
APP_CODE = '{your app code}}'
class PATH: # fxh幣種列表
PATH_JSON = path_root + '/coin_list.json'
class WECHAT: # wechaty token的配置
TOKEN = '{your wechaty token}'
class CoinGK: # CoinGeCko的幣種列表
PATH_JSON = path_root + '/conin_list_cgk.json'
- Notice: 通過IFTTT發(fā)送通知到手機(僅測試了iphone),這里可以配置IFTTT的token
- Zengr:加密貨幣行情提供商,新用戶有免費次數(shù),目前收集的幣種不多,不推薦
- CoinGK:提供免費API可以獲取行情,但免費版功能受限,能滿足基本要求
本項目默認使用非小號網(wǎng)站數(shù)據(jù),不需要token,注意使用時要自律
目前我們使用的wechaty token是官方的免費版,僅7天試用期。如果要使用長期版本的話,您可以成為wechaty的貢獻者,或者花錢購買。
畢竟錢能解決的事情,都不算事情。
還有一種方式,就是使用UOS的web協(xié)議登陸,參考使用免費Web協(xié)議
2、主要代碼
talk is cheep, show you the code
wechety.py
async def on_message(msg: Message):
text: str = msg.text()
room: Optional[Room] = msg.room()
if text.startswith('@Robot'):
rev_str = text.replace(' ', '')
symbol = rev_str.split('?')[-1]
else:
symbol = text
talker = msg.talker()
if get_conin_seq(symbol) > 0:
await room.say(get_price(symbol), mention_ids=[talker.contact_id])
這里是消息處理入口,get_price(symbol): symbol為幣種,get_price()函數(shù)返回幣種行情。get_conin_seq函數(shù)用于檢查是否支持symbol幣種。
def get_price(symbol):
symbol = symbol.upper()
idx = get_conin_seq(symbol)
result = get_coin(idx)
ret = '\n' \
'【名稱】 ' + result['data'][0]['fullname'] + '-' + result['data'][0]['name'] + '\n' \
'【USD價格】 ' +'$' + str(result['data'][0]['current_price_usd']) + '\n' \
'【CNY價格】 ' +'¥' + str(result['data'][0]['current_price']) + '\n' \
'【全球市值】 ' + '$' + str('%.2f' % (result['data'][0]['marketcap']/100000000)) + '億\n' \
'【24H漲幅】 ' + str(result['data'][0]['change_percent']) + '%\n' \
'【24H換手】 ' + str(result['data'][0]['turnoverrate']) + '%\n\n' \
+ str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) ) + '\n' \
'數(shù)據(jù)來源:非小號'
return ret
這里是get_price的具體實現(xiàn),目前支持非小號前500個幣種。
3、運行
python wechat/wechaty.py
掃碼登錄后,其他用戶在添加了機器人的群中直接發(fā)送幣種(symbol),例如(btc、eth等),稍后機器人便會發(fā)送此幣種行情到微信群中,并@發(fā)送者查收。
注意
要注意一下,對于個人賬戶來說,幣價查詢訪問不要太頻繁,容易被服務器檢測。
作者: 劉小龍,默默無聞的嵌入式工程師

浙公網(wǎng)安備 33010602011771號