avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada mesej peribadi
4
fokus pada
1271
Pengikut

Hubungi API DingTalk untuk melaksanakan mesej tolak robot

Dicipta dalam: 2020-07-02 12:03:23, dikemas kini pada: 2023-09-28 21:08:12
comments   4
hits   4730

Hubungi API DingTalk untuk melaksanakan mesej tolak robot

I. Rumusan

Untuk mengikuti perkembangan status dagangan Inventor Quant Robot dalam urus niaga dunia sebenar, kadangkala kami perlu menghantar hasil dagangan yang dilaksanakan oleh robot ke WeChat, e-mel, mesej teks, dsb. Walau bagaimanapun, dengan beratus-ratus mesej pelbagai jenis setiap hari, orang tidak lagi sensitif terhadap mesej ini, mengakibatkan ketidakupayaan untuk menyemak mesej penting tepat pada masanya Oleh itu, artikel ini melaksanakan push mesej robot dengan menghubungi antara muka kumpulan DingTalk.

2. Robot Kumpulan DingTalk

Robot kumpulan DingTalk ialah fungsi lanjutan lanjutan Selagi anda mempunyai akaun DingTalk, anda boleh menggunakannya. Ia boleh mengagregatkan maklumat pihak ketiga ke dalam kumpulan DingTalk dan merealisasikan penyegerakan automatik maklumat. Ia menyokong akses tersuai protokol Webhook, dan mengagregatkan peringatan, penggera dan maklumat lain ke dalam kumpulan DingTalk melalui Robot Kuantitatif Pencipta. Menyokong tiga format mesej: teks, pautan, dan penurunan harga, dan lima jenis mesej. Mesej yang sama juga boleh dihantar ke berbilang kumpulan DingTalk pada masa yang sama. Rujuk pautan rasmi: https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

3. Buat robot

Langkah 1: Buat kumpulan DingTalk Hubungi API DingTalk untuk melaksanakan mesej tolak robot Setiap kali robot tersuai dicipta dalam kumpulan DingTalk, alamat Hook unik dijana, yang kami panggil alamat WebHook Dengan menolak mesej ke alamat WebHook, kumpulan DingTalk akan menerima mesej. Mari kita ambil DingTalk pada PC sebagai contoh Mula-mula, klik tanda “+” di sudut kiri atas untuk memulakan sembang kumpulan Jika anda hanya mahu menerima mesej sendiri, anda boleh menambah dua orang secara rawak dan kemudian tendang mereka keluar dalam nama kumpulan: “Robot FMZ”, dan pilih Normal sebagai jenis kumpulan.

Langkah 2: Tambah robot kumpulan DingTalk Klik avatar anda, pilih Pengurusan Robot, kemudian pilih Sesuaikan, dan klik Tambah. Sesuaikan nama robot: “FMZ” dan tambahkannya pada kumpulan DingTalk yang baru anda buat. Robot menyokong tiga tetapan keselamatan: Hubungi API DingTalk untuk melaksanakan mesej tolak robot

  • Kata kunci tersuai: Maklumat hanya akan disegerakkan jika ia mengandungi kata kunci ini.
  • Tambah tandatangan: bersamaan dengan menetapkan kata laluan.
  • Alamat IP: Segmen alamat IP bagi maklumat pihak ketiga tetap. Hubungi API DingTalk untuk melaksanakan mesej tolak robot Hubungi API DingTalk untuk melaksanakan mesej tolak robot Jika ia hanya digunakan untuk peringatan atau penggera, cuma pilih kata kunci tersuai. Kata kunci yang kami takrifkan di sini ialah “:”, yang bermaksud bahawa apabila maklumat yang ditolak oleh robot Inventor Quant mengandungi “:”, maklumat ini akan ditolak ke kumpulan DingTalk. Kemudian klik Setuju kepada perjanjian untuk melengkapkan. Akhir sekali, salin alamat Webhook untuk kegunaan kemudian.

4. Pelaksanaan Kod

Selepas mendapatkan alamat Webhook, kami boleh memulakan permintaan HTTP POST ke alamat ini dalam Strategi Kuantitatif Pencipta untuk menghantar maklumat kepada kumpulan DingTalk ini. Perlu diingat bahawa apabila memulakan permintaan POST, pengekodan set aksara mesti ditetapkan kepada 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)  # 休眠一分钟

Apabila menyesuaikan robot untuk menyegerakkan maklumat, anda boleh menetapkan nombor telefon mudah alih berbilang ahli kumpulan. Apabila ahli kumpulan @ menerima mesej, mereka akan diingatkan oleh mesej @, walaupun sesi Jangan Ganggu ditetapkan.

# 向钉钉群输出信息
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 kod di atas, kami menulis kes untuk mendapatkan harga mata wang digital arus perdana setiap minit dan menolak maklumat ini kepada kumpulan DingTalk: Hubungi API DingTalk untuk melaksanakan mesej tolak robot Hubungi API DingTalk untuk melaksanakan mesej tolak robot