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