В реальных транзакциях для того, чтобы вовремя узнать торговый статус робота FMZ Quant, иногда нам нужно отправлять результаты транзакций, выполненных роботом на WeChat, электронную почту, SMS и т. Д. Однако каждый день появляются сотни различных видов информации, что делает его нечувствительным к этой информации, что приводит к неудаче своевременного сбора важной информации.
Робот группы Dingding - это продвинутая функция расширения. До тех пор, пока есть учетная запись Dingding, вы можете использовать его. Он может агрегировать информацию третьих сторон в группу Dingding для достижения автоматической синхронизации информации. Он поддерживает пользовательский доступ к протоколу Webhook и агрегирует напоминание, предупреждение и другую информацию в группу Dingding через робота FMZ Quant. Поддерживаются три формата сообщений и пять типов сообщений: текст, ссылка и отметка. Одно и то же сообщение также может быть отправлено нескольким группам Dingding одновременно. Ссылка на официальную ссылку:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup
Каждый персонализированный робот, созданный в группе Dingding, будет генерировать уникальный адрес крючка, который называется адресом WebHook. Группа Dingding получит сообщение, нажав сообщение на адрес WebHook. В качестве примера возьмем версию Dingding для ПК. Во-первых, нажмите знак
Нажмите на аватара, выберите Управление роботами, затем выберите Настройка и нажмите Добавить. Название персонализированного робота:
Если он используется только для напоминания или оповещения, выберите ключевое слово, определенное пользователем. Ключевое слово, которое мы определяем здесь,
После получения адреса Webhook мы можем отправить информацию в группу Dingding, отправив HTTP POST запрос на адрес в стратегии FMZ Quant.
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
Когда персонализированный робот синхронизирует информацию, он может установить номер мобильного телефона на @ нескольких членов группы. Когда член группы получает сообщение, будет напоминание о сообщении @. Напоминание все равно будет уведомлено, даже если сеанс без беспокойства установлен.
# 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)
В приведенном выше коде мы написали случай, чтобы получить цену основных цифровых валют каждые минуты и отправить эту информацию в группу Dingding: