我的 Discord 机器人没有响应从 timezonedb 中提取数据的命令

My Discord bot isn't responding to a command to pull data from timezonedb

所以它实际上可以在终端中显示我想要的信息。但是当我提示它作为不和谐消息发送时,它似乎试图发送空白消息。这可能是一些愚蠢的事情,但谢谢你的观看。语言是 Python.

import os
import discord
import requests
import json
import pprint

client = discord.Client()

def get_time():
  response = requests.get("http://api.timezonedb.com/v2.1/get-time-zone?key=W9BJQ3QMGG69&format=json&by=position&lat=37.9838&lng=23.7275")
  return pprint.pprint(response.json())
  

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))


@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$petertest'):
        clock = get_time()
        await message.channel.send(clock)


client.run(os.environ['TOKEN'])

您正在使用 pprint 模块将数据打印到控制台本身。这就是问题所在

将您的代码更改为简单的 return 数据将修复错误。

return response.json()

如果你想发送格式化的json数据到discord,你可以使用json.dumps:

if message.content.startswith('test'):
    clock = get_time()
    clock = json.dumps(clock, indent=4)
    await message.channel.send(clock)