Panggil antara muka Dingding untuk merealisasikan mesej robot push

Penulis:Lydia, Dicipta: 2022-12-20 08:57:16, Dikemas kini: 2023-09-20 09:09:55

img

Panggil antara muka Dingding untuk merealisasikan mesej robot push

1. Ringkasan

Dalam transaksi sebenar, untuk mengetahui status perdagangan robot FMZ Quant tepat pada masanya, kadang-kadang kita perlu menghantar hasil transaksi yang dijalankan oleh robot ke WeChat, e-mel, SMS, dll. Walau bagaimanapun, terdapat beratus-ratus jenis maklumat yang berbeza setiap hari, yang menjadikannya tidak sensitif terhadap maklumat ini, yang menyebabkan kegagalan pengumpulan maklumat penting tepat pada masanya. Oleh itu, artikel ini melaksanakan mesej push robot dengan memanggil antara muka kumpulan Dingding.

2. robot kumpulan Dingding

Robot kumpulan Dingding adalah fungsi lanjutan. Selagi terdapat akaun Dingding, anda boleh menggunakannya. Ia boleh mengumpulkan maklumat pihak ketiga ke dalam kumpulan Dingding untuk mencapai penyegerakan maklumat automatik. Ia menyokong akses tersuai protokol Webhook, dan mengumpulkan peringatan, amaran dan maklumat lain ke dalam kumpulan Dingding melalui robot FMZ Quant. Tiga format mesej dan lima jenis mesej disokong: teks, pautan dan tanda turun. Lihat pautan rasmi:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

3. Buat robot

Langkah 1: Buat kumpulan Dingding

img

Setiap robot tersuai yang dicipta dalam kumpulan Dingding akan menjana alamat hook yang unik, yang dipanggil alamat WebHook. Kumpulan Dingding akan menerima mesej dengan mendorong mesej ke alamat WebHook. Mari kita ambil versi PC Dingding sebagai contoh. Pertama, klik tanda + di sebelah kiri atas untuk memulakan sembang kumpulan. Jika anda hanya mahu menerima mesej itu sendiri, anda boleh memilih dua orang dan menendang mereka keluar. Isi nama kumpulan: FMZ Robot, dan pilih kumpulan biasa sebagai jenis kumpulan.

Langkah 2: Tambah robot kumpulan Dingding

Klik avatar, pilih Pengurusan Robot, kemudian pilih Sesuai, dan klik Tambah. Nama robot tersuai: FMZ, ditambah ke kumpulan Dingding yang baru dicipta. Robot menyokong tiga tetapan keselamatan:

img

  • Kata kunci yang ditakrifkan pengguna: maklumat akan diselaraskan hanya jika ia mengandungi kata kunci ini.
  • Tanda tangan: bersamaan dengan menetapkan kata laluan.
  • Alamat IP: segmen alamat IP maklumat pihak ketiga tetap.

Jika ia hanya digunakan untuk peringatan atau amaran, pilih kata kunci yang ditakrifkan pengguna. Kata kunci yang kita tentukan di sini adalah :, iaitu, apabila maklumat yang ditekan oleh FMZ Quant Robot mengandungi :, maklumat akan ditekan ke kumpulan Dingding. Kemudian klik Setuju untuk melengkapkan perjanjian. Akhirnya, salin alamat Webhook untuk sandaran.

4. Pelaksanaan Kod

Selepas mendapatkan alamat Webhook, kita boleh menghantar maklumat kepada kumpulan Dingding dengan menghantar permintaan HTTP POST ke alamat dalam strategi FMZ Quant. Perhatikan bahawa pengekodan set watak mesti ditetapkan kepada UTF-8 apabila permintaan POST dimulakan.

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

Apabila robot disesuaikan menyegerakkan maklumat, ia boleh menetapkan nombor telefon bimbit kepada @ beberapa ahli dalam kumpulan. Apabila ahli kumpulan menerima mesej, akan ada peringatan mesej @. Pengingat itu masih akan diberitahu walaupun Sesi Tidak Ganggu ditetapkan.

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

Dalam kod di atas, kami menulis kes untuk mendapatkan harga mata wang digital arus perdana setiap satu minit dan menghantar maklumat ini kepada kumpulan Dingding:img


Berkaitan

Lebih lanjut