Llame a la interfaz de Dingding para realizar el mensaje push del robot

El autor:- ¿ Por qué?, Creado: 2022-12-20 08:57:16, Actualizado: 2023-09-20 09:09:55

img

Llame a la interfaz de Dingding para realizar el mensaje push del robot

1. Resumen

En las transacciones reales, para conocer el estado de negociación del robot FMZ Quant a tiempo, a veces necesitamos enviar los resultados de las transacciones ejecutadas por el robot a WeChat, correo electrónico, SMS, etc. Sin embargo, hay cientos de tipos diferentes de información todos los días, lo que lo hace insensible a esta información, lo que lleva al fracaso de la recopilación oportuna de información importante.

2. Robot de grupo de dingding

El robot de grupo de Dingding es una función de extensión avanzada. Siempre y cuando haya una cuenta de Dingding, puede usarlo. Puede agregar la información de terceros en el grupo de Dingding para lograr la sincronización automática de la información. Soporta el acceso personalizado del protocolo Webhook, y agrega el recordatorio, la alerta y otra información en el grupo de Dingding a través del robot FMZ Quant. Se admiten tres formatos de mensaje y cinco tipos de mensaje: texto, enlace y reducción de marca. Consulte el enlace oficial:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

3. Crear un robot

Paso 1: Crear un grupo de Dingding

img

Cada robot personalizado creado en el grupo Dingding generará una dirección de gancho única, que se llama dirección WebHook. El grupo Dingding recibirá un mensaje al enviar un mensaje a la dirección WebHook. Tomemos la versión para PC de Dingding como ejemplo. Primero, haga clic en el signo + en la parte superior izquierda para iniciar un chat grupal. Si solo desea aceptar el mensaje usted mismo, puede seleccionar a dos personas y expulsarlas.

Paso 2: Añadir el robot del grupo Dingding

Haga clic en el avatar, seleccione Gestión de robots, luego seleccione Personalización y haga clic en Agregar.

img

  • Palabra clave definida por el usuario: la información se sincronizará solo si contiene esta palabra clave.
  • Firma: equivalente a establecer una contraseña.
  • Dirección IP: el segmento de dirección IP de la información fija de terceros.

Si solo se utiliza para recordatorios o alertas, seleccione la palabra clave definida por el usuario. La palabra clave que definimos aquí es :, es decir, cuando la información enviada por el Robot Cuántico FMZ contiene :, la información se enviará al grupo Dingding. Luego haga clic en Aceptar para completar el acuerdo. Finalmente, copie la dirección de Webhook para la copia de seguridad.

Implementación del código

Después de obtener la dirección Webhook, podemos enviar la información al grupo Dingding enviando una solicitud HTTP POST a la dirección en la estrategia 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

Cuando un robot personalizado sincroniza información, puede establecer el número de teléfono móvil en @ varios miembros del grupo. Cuando el miembro del grupo recibe el mensaje, habrá un recordatorio de mensaje @. El recordatorio aún se notificará incluso si se establece la sesión de No molestar.

# 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)

5. Robot de prueba

En el código anterior, escribimos un caso para obtener el precio de la moneda digital principal cada minuto y enviar esta información al grupo Dingding:img


Relacionados

Más.