Appelez l'API DingTalk pour implémenter des messages push de robot

Créé le: 2020-07-02 12:03:23, Mis à jour le: 2023-09-28 21:08:12
comments   4
hits   4204

Appelez l’API DingTalk pour implémenter des messages push de robot

I. Sommaire

Afin de rester au courant de l’état commercial du robot Inventor Quant dans les transactions du monde réel, nous devons parfois envoyer les résultats commerciaux exécutés par le robot à WeChat, par e-mail, par SMS, etc. Cependant, avec des centaines de messages de toutes sortes chaque jour, les gens ne sont plus sensibles à ces messages, ce qui entraîne l’incapacité de vérifier les messages importants en temps opportun. Par conséquent, cet article implémente la transmission de messages robotisés en appelant l’interface de groupe DingTalk.

2. Robot de groupe DingTalk

Le robot de groupe DingTalk est une fonction étendue avancée. Tant que vous disposez d’un compte DingTalk, vous pouvez l’utiliser. Il peut regrouper des informations tierces dans le groupe DingTalk et réaliser une synchronisation automatique des informations. Il prend en charge l’accès personnalisé au protocole Webhook et regroupe les rappels, les alarmes et d’autres informations dans le groupe DingTalk via le robot quantitatif Inventor. Prend en charge trois formats de message : texte, lien et markdown, ainsi que cinq types de message. Le même message peut également être envoyé à plusieurs groupes DingTalk en même temps. Consultez le lien officiel : https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

3. Créer un robot

Étape 1 : créer un groupe DingTalk Appelez l’API DingTalk pour implémenter des messages push de robot Chaque fois qu’un robot personnalisé est créé dans un groupe DingTalk, une adresse Hook unique est générée, que nous appelons adresse WebHook. En envoyant des messages à l’adresse WebHook, le groupe DingTalk recevra les messages. Prenons l’exemple de DingTalk sur PC. Tout d’abord, cliquez sur le signe « + » dans le coin supérieur gauche pour démarrer une discussion de groupe. Si vous ne souhaitez recevoir des messages que vous-même, vous pouvez ajouter au hasard deux personnes, puis les exclure. Remplissez dans le nom du groupe : « FMZ Robot », et sélectionnez Normal comme type de groupe. Groupez simplement.

Étape 2 : ajouter un robot de groupe DingTalk Cliquez sur votre avatar, sélectionnez Gestion du robot, puis sélectionnez Personnaliser et cliquez sur Ajouter. Personnalisez le nom du robot : « FMZ » et ajoutez-le au groupe DingTalk que vous venez de créer. Le robot prend en charge trois paramètres de sécurité : Appelez l’API DingTalk pour implémenter des messages push de robot

  • Mots-clés personnalisés : les informations ne seront synchronisées que si elles contiennent ce mot-clé.
  • Ajouter une signature : équivaut à définir un mot de passe.
  • Adresse IP : Le segment d’adresse IP des informations fixes de tiers. Appelez l’API DingTalk pour implémenter des messages push de robot Appelez l’API DingTalk pour implémenter des messages push de robot S’il est utilisé uniquement pour des rappels ou des alarmes, sélectionnez simplement des mots-clés personnalisés. Le mot-clé que nous définissons ici est « : », ce qui signifie que lorsque les informations poussées par le robot Inventor Quant contiennent « : », ces informations seront poussées vers le groupe DingTalk. Cliquez ensuite sur Accepter l’accord pour terminer. Enfin, copiez l’adresse du Webhook pour une utilisation ultérieure.

4. Implémentation du code

Après avoir obtenu l’adresse Webhook, nous pouvons lancer une requête HTTP POST vers cette adresse dans la stratégie quantitative Inventor pour envoyer des informations à ce groupe DingTalk. Il convient de noter que lors du lancement d’une requête POST, le codage du jeu de caractères doit être défini sur UTF-8.

import requests
import json
from datetime import datetime, timedelta, timezone


# 向钉钉群输出信息
def msg(text):
    token ="0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
    headers = {'Content-Type': 'application/json;charset=utf-8'}  # 请求头
    api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
    json_text = {
        "msgtype": "text",  # 信息格式
        "text": {
            "content": text
        }
    }
    # 发送并打印信息
    Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)

    
# 测试函数
def onTick():
    arr = ['BTC', 'ETH', 'XRP', 'BCH', 'LTC']  # 主流数字货币
    # 获取东八区时间
    bj_dt = str(datetime.now().astimezone(timezone(timedelta(hours=8))))
    bj_dt = bj_dt.split('.')[0]  # 处理时间
    text = f'{bj_dt}\n'  # 定义信息内容
    for i in arr:  # 循环主流数字货币数组
        exchange.IO("currency", f"{i}_USDT")  # 切换交易对
        ticker = exchange.GetTicker().Last  # 获取最新价格
        if i == 'LTC':
            full = ' :'
        else:
            full = ':'
        text = text + f"{i}/USDT{full}${ticker}\n"  # 处理信息内容
    msg(text)  # 调用msg函数,输出信息
    

# 策略入口
def main():
    while True:  # 进入无线循环
        onTick()  # 执行onTick函数
        Sleep(1000 * 60)  # 休眠一分钟

Lors de la personnalisation des robots pour synchroniser les informations, vous pouvez définir les numéros de téléphone mobile de plusieurs membres du groupe. Lorsque les membres du groupe @ reçoivent le message, ils seront rappelés par le message @, même si la session Ne pas déranger est définie.

# 向钉钉群输出信息
def msg(text):
    token = "0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
    headers = {'Content-Type': 'application/json;charset=utf-8'}  # 请求头
    api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
    json_text = {
        "msgtype": "text",  # 信息格式
        "text": {
            "content": text
        },
        "at": {
            "atMobiles": [
                "16666666666",  # 被@的手机号码
                "18888888888"  # 被@的手机号码
            ],
            "isAtAll": False  # 不@所有人
        }
    }
    # 发送并打印信息
    Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)

5. Test du robot

Dans le code ci-dessus, nous avons écrit un cas pour obtenir les prix des principales devises numériques chaque minute et transmettre ces informations au groupe DingTalk : Appelez l’API DingTalk pour implémenter des messages push de robot Appelez l’API DingTalk pour implémenter des messages push de robot