为啥在使用 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 请求更改服务器上的昵称

Discord Python API 需要在 Heroku 上更新到最新版本(1.4.1)

Discord API 链接是哪一个?