首页 > 解决方案 > discord.py Spotify 似乎没有做任何事情

问题描述

我正在开发我的第一个机器人只是作为一种爱好和帮助我学习一些 Python 的东西,我一直在尝试将 Spotify 与它集成,但它似乎不起作用。我还阅读了该网站上的另一篇文章,但没有帮助。

我试过阅读文档,但我是初学者,在谷歌上找不到太多帮助。

如果我打印(discord.Spotify.title),我会得到这个 <property object at 0x0000020E42C5DE00>

这是我尝试使用但不起作用的代码:

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)

对任何格式问题表示歉意。不确定我是否正确使用了代码块

如果它有什么不同的话,我也会使用齿轮。

只是希望它至少给我发回一条用户正在播放的歌曲的消息,这样我就可以让它对不同的艺术家或歌曲做出不同的反应。

谢谢!

标签: pythondiscord.pyspotify

解决方案


您可以尝试检查您的 Intent 是否有问题。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)

输出:

在此处输入图像描述


推荐阅读