avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

Panggil API DingTalk untuk mengimplementasikan pesan push robot

Dibuat di: 2020-07-02 12:03:23, diperbarui pada: 2023-09-28 21:08:12
comments   4
hits   4728

Panggil API DingTalk untuk mengimplementasikan pesan push robot

I. Ringkasan

Untuk terus mengetahui status perdagangan Inventor Quant Robot dalam transaksi dunia nyata, terkadang kami perlu mengirim hasil perdagangan yang dieksekusi oleh robot ke WeChat, email, pesan teks, dll. Namun, dengan ratusan pesan dari berbagai jenis setiap hari, orang-orang tidak lagi peka terhadap pesan-pesan ini, yang mengakibatkan ketidakmampuan untuk memeriksa pesan-pesan penting secara tepat waktu. Oleh karena itu, artikel ini mengimplementasikan pengiriman pesan robot dengan memanggil antarmuka grup DingTalk.

2. Robot Grup DingTalk

Robot grup DingTalk merupakan fungsi lanjutan yang canggih. Selama Anda memiliki akun DingTalk, Anda dapat menggunakannya. Ia dapat menggabungkan informasi pihak ketiga ke dalam grup DingTalk dan mewujudkan sinkronisasi informasi secara otomatis. Mendukung akses khusus protokol Webhook, dan menggabungkan pengingat, alarm, dan informasi lainnya ke dalam grup DingTalk melalui Robot Kuantitatif Inventor. Mendukung tiga format pesan: teks, tautan, dan penurunan harga, dan lima jenis pesan. Pesan yang sama juga dapat dikirim ke beberapa grup DingTalk secara bersamaan. Lihat tautan resmi: https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

3. Membuat robot

Langkah 1: Buat grup DingTalk Panggil API DingTalk untuk mengimplementasikan pesan push robot Setiap kali robot kustom dibuat dalam grup DingTalk, alamat Hook unik dibuat, yang kami sebut alamat WebHook. Dengan mengirim pesan ke alamat WebHook, grup DingTalk akan menerima pesan tersebut. Mari kita ambil DingTalk di PC sebagai contoh. Pertama, klik tanda “+” di sudut kiri atas untuk memulai obrolan grup. Jika Anda hanya ingin menerima pesan sendiri, Anda dapat menambahkan dua orang secara acak lalu mengeluarkan mereka. Isi dalam nama grup: “FMZ Robot”, dan pilih Normal sebagai jenis grup. Cukup grup.

Langkah 2: Tambahkan robot grup DingTalk Klik avatar Anda, pilih Manajemen Robot, lalu pilih Kustomisasi, dan klik Tambahkan. Sesuaikan nama robot: “FMZ” dan tambahkan ke grup DingTalk yang baru saja Anda buat. Robot ini mendukung tiga pengaturan keamanan: Panggil API DingTalk untuk mengimplementasikan pesan push robot

  • Kata kunci khusus: Informasi hanya akan disinkronkan jika berisi kata kunci ini.
  • Tambahkan tanda tangan: setara dengan menetapkan kata sandi.
  • Alamat IP: Segmen alamat IP dari informasi pihak ketiga yang tetap. Panggil API DingTalk untuk mengimplementasikan pesan push robot Panggil API DingTalk untuk mengimplementasikan pesan push robot Jika hanya digunakan untuk pengingat atau alarm, pilih saja kata kunci khusus. Kata kunci yang kami definisikan di sini adalah “:”, yang berarti bahwa ketika informasi yang didorong oleh robot Inventor Quant berisi “:”, informasi ini akan didorong ke grup DingTalk. Lalu klik Setuju pada perjanjian untuk menyelesaikannya. Terakhir, salin alamat Webhook untuk digunakan nanti.

4. Implementasi Kode

Setelah memperoleh alamat Webhook, kita dapat memulai permintaan HTTP POST ke alamat ini dalam Strategi Kuantitatif Inventor untuk mengirim informasi ke grup DingTalk ini. Perlu dicatat bahwa saat memulai permintaan POST, pengkodean set karakter harus diatur ke 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)  # 休眠一分钟

Saat menyesuaikan robot untuk menyinkronkan informasi, Anda dapat mengatur nomor telepon seluler beberapa anggota grup. Saat anggota grup @ menerima pesan, mereka akan diingatkan oleh pesan @, meskipun sesi Jangan Ganggu diatur.

# 向钉钉群输出信息
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. Menguji robot

Dalam kode di atas, kami menulis kasus untuk mendapatkan harga mata uang digital utama setiap menit dan mengirimkan informasi ini ke grup DingTalk: Panggil API DingTalk untuk mengimplementasikan pesan push robot Panggil API DingTalk untuk mengimplementasikan pesan push robot