python discord.py 似乎什么也没做

sr4lhrrt  于 2023-01-16  发布在  Python
关注(0)|答案(2)|浏览(164)

我开发我的第一个机器人只是作为一个爱好和一些东西,以帮助我学习一些Python,我一直试图整合Spotify与它,但它似乎只是不工作。我也读了这个网站上的其他职位,但它没有帮助。
我试过通读文档,但我是一个初学者,在谷歌上找不到太多帮助。
如果我打印(discord.Spotify. title),我会得到这个属性对象
这是我尝试使用但不起作用的代码:

from discord import Spotify

@bot.command()
async def spotify(ctx, user: discord.Member = None):
    if user == None:
        user = ctx.author
        pass
    if user.activities:
        for activity in user.activities:
            if isinstance(activity, Spotify):
                embed = discord.Embed(title = f"{user.name}'s Spotify", description = "Listening to{}".format(activity.title), color = 0xC902FF)
                embed.set_thumbnail(url=activity.album_cover_url)
                embed.add_field(name="Artist", value=activity.artist)
                embed.add_field(name="Album", value=activity.album)
                embed.set_footer(text="Song started at {}".format(activity.created_at.strftime("%H:%M")))
                await ctx.send(embed=embed)

对于任何格式问题表示歉意。不确定我是否正确使用了代码块
我也在使用齿轮,如果它有区别的话。
只是想让它至少给我回一条消息,里面有用户正在播放的歌曲,这样我就可以让它对不同的艺术家或歌曲做出不同的响应。
谢谢!

l7wslrjt

l7wslrjt1#

您可以尝试检查是否是Intents的问题。使用以下函数导入all

intents = discord.Intents.all()
client = discord.Client(intents=intents)

与代码连接后,以下命令对我来说工作正常:

from discord import Spotify

@bot.command()
async def spotify(ctx, user: discord.Member = None):
    if user == None:
        user = ctx.author
        pass
    if user.activities:
        for activity in user.activities:
            if isinstance(activity, Spotify):
                embed = discord.Embed(title = f"{user.name}'s Spotify", description = "Listening to{}".format(activity.title), color = 0xC902FF)
                embed.set_thumbnail(url=activity.album_cover_url)
                embed.add_field(name="Artist", value=activity.artist)
                embed.add_field(name="Album", value=activity.album)
                embed.set_footer(text="Song started at {}".format(activity.created_at.strftime("%H:%M")))
                await ctx.send(embed=embed)

输出:

ccgok5k5

ccgok5k52#

我也有同样的问题。
添加此行后:

intents = discord.Intents().all()

您需要将Intent添加到bot参数:

bot = commands.Bot(command_prefix = "?", intents=intents)

相关问题