Gọi giao diện Dingding để nhận ra thông báo đẩy robot

Tác giả:Lydia., Tạo: 2022-12-20 08:57:16, Cập nhật: 2023-09-20 09:09:55

img

Gọi giao diện Dingding để nhận ra thông báo đẩy robot

1. tóm tắt

Trong các giao dịch thực tế, để biết tình trạng giao dịch của robot FMZ Quant trong thời gian, đôi khi chúng ta cần gửi kết quả giao dịch được thực hiện bởi robot đến WeChat, email, SMS, v.v. Tuy nhiên, có hàng trăm loại thông tin khác nhau mỗi ngày, làm cho nó không nhạy cảm với thông tin này, dẫn đến sự thất bại trong việc thu thập kịp thời thông tin quan trọng. Do đó, bài viết này thực hiện tin nhắn đẩy robot bằng cách gọi giao diện nhóm Dingding.

2. Dingding robot nhóm

Robot nhóm Dingding là một chức năng mở rộng tiên tiến. Miễn là có tài khoản Dingding, bạn có thể sử dụng nó. Nó có thể tổng hợp thông tin của bên thứ ba vào nhóm Dingding để đạt được đồng bộ hóa thông tin tự động. Nó hỗ trợ truy cập tùy chỉnh của giao thức Webhook, và tổng hợp lời nhắc, cảnh báo và thông tin khác vào nhóm Dingding thông qua robot FMZ Quant. Ba định dạng tin nhắn và năm loại tin nhắn được hỗ trợ: văn bản, liên kết và giảm giá. Xem liên kết chính thức:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

3. Tạo robot

Bước 1: Tạo một nhóm Dingding

img

Mỗi robot tùy chỉnh được tạo trong nhóm Dingding sẽ tạo ra một địa chỉ hook độc đáo, được gọi là địa chỉ WebHook. Nhóm Dingding sẽ nhận được một tin nhắn bằng cách đẩy một tin nhắn đến địa chỉ WebHook. Hãy lấy phiên bản PC của Dingding làm ví dụ. Đầu tiên, bấm dấu + ở phía trên bên trái để bắt đầu trò chuyện nhóm. Nếu bạn chỉ muốn chấp nhận tin nhắn, bạn có thể chọn hai người và đuổi họ ra. Nhập tên nhóm: FMZ Robot, và chọn một nhóm bình thường như loại nhóm.

Bước 2: Thêm robot nhóm Dingding

Nhấp vào avatar, chọn Quản lý Robot, sau đó chọn Tùy chỉnh, và nhấp vào Thêm. Tên robot tùy chỉnh: FMZ, được thêm vào nhóm Dingding mới được tạo. Robot hỗ trợ ba cài đặt bảo mật:

img

  • Từ khóa được xác định bởi người dùng: thông tin sẽ được đồng bộ hóa chỉ nếu nó chứa từ khóa này.
  • Chữ ký: tương đương với việc đặt mật khẩu.
  • Địa chỉ IP: phân đoạn địa chỉ IP của thông tin bên thứ ba cố định.

Nếu nó chỉ được sử dụng để nhắc nhở hoặc cảnh báo, hãy chọn từ khóa được xác định bởi người dùng. Từ khóa chúng tôi xác định ở đây là :, nghĩa là khi thông tin được đẩy bởi FMZ Quant Robot chứa :, thông tin sẽ được đẩy đến nhóm Dingding. Sau đó bấm đồng ý để hoàn thành thỏa thuận. Cuối cùng, sao chép địa chỉ Webhook để sao lưu.

4. Thực hiện mã

Sau khi lấy địa chỉ Webhook, chúng ta có thể gửi thông tin đến nhóm Dingding bằng cách gửi yêu cầu HTTP POST đến địa chỉ trong chiến lược FMZ Quant. Lưu ý rằng mã hóa tập hợp ký tự phải được đặt thành UTF-8 khi yêu cầu POST được bắt đầu.

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

Khi một robot tùy chỉnh đồng bộ hóa thông tin, nó có thể đặt số điện thoại di động thành @ nhiều thành viên trong nhóm. Khi thành viên nhóm nhận tin nhắn, sẽ có một lời nhắc tin nhắn @. Lời nhắc vẫn sẽ được thông báo ngay cả khi No Disturb Session được đặt.

# 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 thử nghiệm

Trong mã trên, chúng tôi đã viết một trường hợp để có được giá của tiền kỹ thuật số chính thống mỗi một phút và đẩy thông tin này đến nhóm Dingding:img


Có liên quan

Thêm nữa