为啥在使用 Discord Python API 时 client.emojis,client.get all emojis() 的较新版本返回空列表?
Posted
技术标签:
【中文标题】为啥在使用 Discord Python API 时 client.emojis,client.get all emojis() 的较新版本返回空列表?【英文标题】:Why client.emojis, newer version of client.get_all_emojis() returns empy list when using Discord's Python API?为什么在使用 Discord Python API 时 client.emojis,client.get all emojis() 的较新版本返回空列表? 【发布时间】:2020-10-14 01:53:04 【问题描述】:基于 this、this、this 和 this,我预计 client.get_all_emojis()
可以在我的 Discord 聊天机器人中工作:
import discord
from dotenv import load_dotenv
import asyncio
import os
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
GUILD = os.getenv('DISCORD_GUILD')
client = discord.Client()
@client.event
async def on_message(message):
if message.content == 'send emoji':
await message.channel.send(client.get_all_emojis()[0])
client.run(TOKEN)
我希望client.get_all_emojis()
是一个列表,并希望机器人发送该列表的第一个元素。但是我明白了:
回溯(最近一次通话最后一次): 文件 "/home/ps738/.local/lib/python3.8/site-packages/discord/client.py", 第 312 行,在 _run_event
await coro(*args, **kwargs) > 文件“bot5.py”,第 15 行,on_message
await message.channel.send(client.get_all_emojis()[0]) > AttributeError: 'Client' object has no attribute 'get_all_emojis'
要点:'Client'对象没有'get_all_emojis'属性。
我该如何解决这个问题?
添加
基于Patrick对PrimeEpoch的answer的this answer和this source对我的问题的评论,我尝试用client.emojis[0]
替换client.get_all_emojis()[0]
。现在它说:IndexError: list index out of range
,所以可能返回了一个空列表,这并不理想。
【问题讨论】:
【参考方案1】:可能是因为你使用的是discord.py的重写版本,从我发现here,你应该使用client.emojis
【讨论】:
好来源!问题是它似乎返回了一个空列表(请参阅 OP 中的 ADD) @zabop 啊,是的,看起来您需要在服务器中添加一些表情符号,我相信它仅适用于特定于您的服务器的表情符号,而不适用于标准表情符号。 哦,好的。你能展示如何发送标准的吗? :) 这些只是标准的 unicode 表情符号,我想您可能对 geeksforgeeks.org/python-program-to-print-emojis 的表情符号模块感兴趣或者,您可以获取您想要的特定 unicode 表情符号并将其粘贴到您的代码中。您可以通过在与普通用户发送之前添加反斜杠来使不和谐发送 unicode 表情符号,因此“\:joy:”将显示为 ?,您可以直接将其复制到您的代码中。 抱歉,链接错误(哎呀)pypi.org/project/emoji以上是关于为啥在使用 Discord Python API 时 client.emojis,client.get all emojis() 的较新版本返回空列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Discord API 和 Python 请求发送图片
如何使用 Python 中的 API 使用 Discord 聊天机器人发送新闻?
使用 Codeforces API 通过 discord bot (discord.py) 获取有关用户在 CF 问题上的所有 AC 的信息 - python 中的 json 文件处理错误
(Discord api) 使用 python 请求更改服务器上的昵称