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】:您可以使用requests
或urllib
模块,但它们是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 或更少