discord.py Spotify 似乎啥也没做

Posted

技术标签:

【中文标题】discord.py Spotify 似乎啥也没做【英文标题】:discord.py Spotify doesnt seem to do anythingdiscord.py Spotify 似乎什么也没做 【发布时间】:2021-07-07 04:05:40 【问题描述】:

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

我已尝试通读文档,但我是初学者,在 Google 上找不到太多帮助。

如果我打印(discord.Spotify.title),我会在 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)

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

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

只是希望它至少向我发送一条消息,其中包含用户正在播放的歌曲,以便我可以让它对不同的艺术家或歌曲做出不同的反应。

谢谢!

【问题讨论】:

【参考方案1】:

您可以尝试检查您的 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)

输出:

【讨论】:

不,仍然没有。我不确定问题出在哪里,因为我的 Spotify 已打开并正在播放,并且我在 cog 和 main.py 中都尝试了代码,但 Discord 中没有响应或控制台中打印错误。我所有的其他命令都有效,所以我不知道发生了什么。在一个 cog 中,我所做的只是将其更改为 commands.command 而不是 bot.command 您是否还激活了人们可以看到您在 Spotify 上播放的内容? (Shortcuts -> Show Spotify as your status) 如果您使用 commands.command/Cogs,您可以尝试将命令编辑为以下内容:async def spotify(self, ctx, user: discord.Member = None): - 也许这就是问题所在。 是的,Spotify 显示为我的状态,但仍然没有。我也添加了自我,但仍然没有。如果我的代码是正确的,我想知道问题出在哪里。 您是否正确缩进了代码?您还可以将# 添加到各个字段,并查看fields 之一是否会导致错误。 好的,我已经做了一些测试。不确定我是否正确执行此操作,但如果我告诉print(user.activities) 控制台仅显示() 我的状态是什么(spotify,什么都没有,easyRP)无关紧要,输出不会改变。这可能是权限问题吗?感谢您的帮助。

以上是关于discord.py Spotify 似乎啥也没做的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap build android啥也没做

hexo的next主题变成 似乎是德语了,我啥也没做,原本是英语,如何...

昨天没更 啥也没做

在 $git push -u origin main 命令之后,Git bash 没有请求任何身份验证,实际上啥也没做

尝试将带有文字的图片发送到 Instagram 快拍,但 com.instagram.share.ADD_TO_STORY 啥也没做

为啥我啥也没做,wireshark却从打开就一直在捕捉报文呢?