Python请求在同一通道中再次发送消息

2024-05-19 01:05:08 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法,如果通道ID的状态响应代码为200,则不应在同一通道中再次发送消息

USERS_TOKEN = "TOKEN"
CHANNEL_ID_1 = "CHANNELID HERE"
CHANNEL_ID_2 = "CHANNELID HERE"
CHANNEL_ID_3 = "CHANNELID HERE"
CHANNEL_ID_4 = "CHANNELID HERE"
MESSAGE_1 = "msg 1 channel 1"
MESSAGE_2 = "msg 2 channel 2"
MESSAGE_3 = "msg 3 channel 3"
MESSAGE_4 = "msg 4 channel 4"
msgcount = "10"
def sendMessage(token, channel_id, message):
    url = 'https://discord.com/api/v9/channels/{}/messages'.format(channel_id)
    data = {"content": message}
    header = {"authorization": token}

    r = requests.post(url, data=data, headers=header)
    print(r.status_code)

for i in range(int(msgcount)):
    time.sleep(0.3)
    sendMessage(USERS_TOKEN, CHANNEL_ID_1, MESSAGE_1)
    sendMessage(USERS_TOKEN, CHANNEL_ID_2, MESSAGE_2)
    sendMessage(USERS_TOKEN, CHANNEL_ID_3, MESSAGE_3)
    sendMessage(USERS_TOKEN, CHANNEL_ID_4, MESSAGE_4)

请修改代码,这对我很有帮助


Tags: 代码tokenidmessagedataherechannelmsg
1条回答
网友
1楼 · 发布于 2024-05-19 01:05:08

如果我正确理解了这个问题,我建议使用这种代码结构

[注:未经测试]

import requests
import time

USERS_TOKEN = "TOKEN"
MDICT = {"CHANNEL_1": "message_1",
         "CHANNEL_2": "message_2",
         "CHANNEL_3": "message_3",
         "CHANNEL_4": "message_4"
         }
msgcount = 10


def sendMessage(token, channel_id, message):
    url = f'https://discord.com/api/v9/channels/{channel_id}/messages'
    data = {"content": message}
    header = {"authorization": token}
    with requests.Session() as session:
        return session.post(url, data=data, headers=header).status_code


while msgcount > 0 and MDICT:
    time.sleep(0.3)
    key = next(iter(MDICT.keys()))
    if sendMessage(USERS_TOKEN, key, MDICT[key]) == 200:
        del MDICT[key]
    msgcount -= 1

相关问题 更多 >

    热门问题