Twopart 嵌入式 API 消息 Discord.py(branch>rewrite)

Posted

技术标签:

【中文标题】Twopart 嵌入式 API 消息 Discord.py(branch>rewrite)【英文标题】:Twopart Embedded API Message Discord.py(branch>rewrite) 【发布时间】:2021-03-04 07:42:10 【问题描述】:

如何制作如下 API: https://sv443.net/jokeapi/v2/joke/Dark?blacklistFlags=nsfw,religious,political,racist,sexist&type=twopart 像这样?

https://i.stack.imgur.com/OyWQ6.png

【问题讨论】:

嗨,很抱歉,这是一个非常糟糕的问题,请更加详细和详细,详细解释目标,展示您尝试过的内容并解释您遇到的错误。 【参考方案1】:

我使用了aiohttp 顺便说一句,你需要导入它。并以json 回复,然后将信息放入嵌入中。

@bot.command()
async def joke(ctx):
    url = 'https://sv443.net/jokeapi/v2/joke/Dark?blacklistFlags=nsfw,religious,political,racist,sexist&type=twopart'
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as r:
            if r.status == 200:
                info = await r.json()
                embed = discord.Embed(title=info['setup'], description=info['delivery'])
                await ctx.send(embed=embed)

【讨论】:

这可能行得通,但不建议使用 requests 或 urllib,请改用 aiohttp【参考方案2】:

您可以使用requestsurllib 模块,但它们是blocking,您应该改用aiohttp

import aiohttp

@bot.command()
async def joke_embed(ctx):
    async with aiohttp.ClientSession as cs:
        async with cs.get('https://sv443.net/jokeapi/v2/joke/Dark?blacklistFlags=nsfw,religious,political,racist,sexist&type=twopart') as res:
            resp = await res.json()


    setup, delivery = resp['setup'], resp['delivery']
    embed = discord.Embed(title=setup, description=delivery, colour=discord.Colour.greyple())

    await ctx.send(embed=embed)
aiohttp docs

【讨论】:

以上是关于Twopart 嵌入式 API 消息 Discord.py(branch>rewrite)的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Telegram Bot API 在消息中发送嵌入图像和文本

用户反应后删除消息

Discord bot 嵌入消息错误 长度必须为 2048 或更少

Discord bot没有回复消息[重复]

EventWaiter - Java Discord API

lastmessageID 始终为空,除了我