Dalam transaksi sebenar, untuk mengetahui status perdagangan robot FMZ Quant tepat pada masanya, kadang-kadang kita perlu menghantar hasil transaksi yang dijalankan oleh robot ke WeChat, e-mel, SMS, dll. Walau bagaimanapun, terdapat beratus-ratus jenis maklumat yang berbeza setiap hari, yang menjadikannya tidak sensitif terhadap maklumat ini, yang menyebabkan kegagalan pengumpulan maklumat penting tepat pada masanya. Oleh itu, artikel ini melaksanakan mesej push robot dengan memanggil antara muka kumpulan Dingding.
Robot kumpulan Dingding adalah fungsi lanjutan. Selagi terdapat akaun Dingding, anda boleh menggunakannya. Ia boleh mengumpulkan maklumat pihak ketiga ke dalam kumpulan Dingding untuk mencapai penyegerakan maklumat automatik. Ia menyokong akses tersuai protokol Webhook, dan mengumpulkan peringatan, amaran dan maklumat lain ke dalam kumpulan Dingding melalui robot FMZ Quant. Tiga format mesej dan lima jenis mesej disokong: teks, pautan dan tanda turun. Lihat pautan rasmi:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup
Setiap robot tersuai yang dicipta dalam kumpulan Dingding akan menjana alamat hook yang unik, yang dipanggil alamat WebHook. Kumpulan Dingding akan menerima mesej dengan mendorong mesej ke alamat WebHook. Mari kita ambil versi PC Dingding sebagai contoh. Pertama, klik tanda
Klik avatar, pilih Pengurusan Robot, kemudian pilih Sesuai, dan klik Tambah. Nama robot tersuai:
Jika ia hanya digunakan untuk peringatan atau amaran, pilih kata kunci yang ditakrifkan pengguna. Kata kunci yang kita tentukan di sini adalah
Selepas mendapatkan alamat Webhook, kita boleh menghantar maklumat kepada kumpulan Dingding dengan menghantar permintaan HTTP POST ke alamat dalam strategi FMZ Quant. Perhatikan bahawa pengekodan set watak mesti ditetapkan kepada UTF-8 apabila permintaan POST dimulakan.
import requests
import json
from datetime import datetime, timedelta, timezone
# Output information to Dingding group
def msg(text):
token ="0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
headers = {'Content-Type': 'application/json;charset=utf-8'} # Request header
api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
json_text = {
"msgtype": "text", # Message type
"text": {
"content": text
}
}
# Send and print messages
Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)
# Test functions
def onTick():
arr = ['BTC', 'ETH', 'XRP', 'BCH', 'LTC'] # Mainstream digital currencies
# Get the time of East Zone 8
bj_dt = str(datetime.now().astimezone(timezone(timedelta(hours=8))))
bj_dt = bj_dt.split('.')[0] # Time of processing
text = f'{bj_dt}\n' # Define information content
for i in arr: # Loop mainstream digital currency array
exchange.IO("currency", f"{i}_USDT") # Switch trading pairs
ticker = exchange.GetTicker().Last # Get the latest price
if i == 'LTC':
full = ' :'
else:
full = ':'
text = text + f"{i}/USDT{full}${ticker}\n" # Processing information content
msg(text) # Call msg function to output information
# Strategy entrance
def main():
while True: # Enter infinite loop
onTick() # Execute onTick function
Sleep(1000 * 60) # Sleep for one minute
Apabila robot disesuaikan menyegerakkan maklumat, ia boleh menetapkan nombor telefon bimbit kepada @ beberapa ahli dalam kumpulan. Apabila ahli kumpulan menerima mesej, akan ada peringatan mesej @. Pengingat itu masih akan diberitahu walaupun Sesi Tidak Ganggu ditetapkan.
# Output information to Dingding group
def msg(text):
token = "0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
headers = {'Content-Type': 'application/json;charset=utf-8'} # Request header
api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
json_text = {
"msgtype": "text", # Message type
"text": {
"content": text
},
"at": {
"atMobiles": [
"16666666666", # Phone number of the @
"18888888888" # Phone number of the @
],
"isAtAll": False # Not @ Everyone
}
}
# Send and print messages
Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)
Dalam kod di atas, kami menulis kes untuk mendapatkan harga mata wang digital arus perdana setiap satu minit dan menghantar maklumat ini kepada kumpulan Dingding: