Webhook 状态代码 400:{"embeds":["Must be 10 or fewer in length."]}
Webhook status code 400: {"embeds": ["Must be 10 or fewer in length."]}
我正在开发一个每秒向不和谐频道发送消息的机器人,但是当我 运行 程序只发送 10 条消息并且只打印 [1/1] Webhook 状态代码 400:{"embeds": ["长度必须为 10 或更少。"]}。 我不明白为什么会这样,我正在使用 discord_webhook 库和python 做到这一点。这是我的代码
async def __scrape_api(session, pid):
async with session.get(API_URL + pid) as response:
data = await response.json()
print(f"scrape {data}")
if not __search_product(pid):
name = data["name"]
image_url = data['skus'][0]['image']
for size in data['skus']:
if size['available']:
print("sent")
message = DiscordEmbed(title=f'{name}', url=f'{PRODUCT_URL_0}{size["sku"]}{PRODUCT_URL_1}',
description=f'talla: {size["dimensions"]["Tallas Calzado"]}\nPrecio: {size["bestPriceFormated"]}')
message.set_thumbnail(url=image_url)
message.set_timestamp()
webhook.add_embed(message)
response = webhook.execute()
time.sleep(1)
# save to database
__insert_new_product(pid, name, image_url, data['available'])
在深入研究其代码几分钟后,我找到了解决方案。基本上,您发送的每个嵌入都保存在 webhook 对象中,一旦您使用嵌入发出 10 个请求,它就会给您该错误。您所要做的就是:
webhook.execute(remove_embeds=True)
我正在开发一个每秒向不和谐频道发送消息的机器人,但是当我 运行 程序只发送 10 条消息并且只打印 [1/1] Webhook 状态代码 400:{"embeds": ["长度必须为 10 或更少。"]}。 我不明白为什么会这样,我正在使用 discord_webhook 库和python 做到这一点。这是我的代码
async def __scrape_api(session, pid):
async with session.get(API_URL + pid) as response:
data = await response.json()
print(f"scrape {data}")
if not __search_product(pid):
name = data["name"]
image_url = data['skus'][0]['image']
for size in data['skus']:
if size['available']:
print("sent")
message = DiscordEmbed(title=f'{name}', url=f'{PRODUCT_URL_0}{size["sku"]}{PRODUCT_URL_1}',
description=f'talla: {size["dimensions"]["Tallas Calzado"]}\nPrecio: {size["bestPriceFormated"]}')
message.set_thumbnail(url=image_url)
message.set_timestamp()
webhook.add_embed(message)
response = webhook.execute()
time.sleep(1)
# save to database
__insert_new_product(pid, name, image_url, data['available'])
在深入研究其代码几分钟后,我找到了解决方案。基本上,您发送的每个嵌入都保存在 webhook 对象中,一旦您使用嵌入发出 10 个请求,它就会给您该错误。您所要做的就是:
webhook.execute(remove_embeds=True)