我可以使用discord.py或其他Discord bot python库获取discord服务器中所有webhook URL的列表吗?抱歉,这太短了,我不确定我还能为问题提供哪些其他信息。
我也尝试了以下方法。
import discord
client = command.Bot()
@client.event
async def on_message(message):
message.content.lower()
if message.author == client.user:
return
if message.content.startswith("webhook"):
async def urls(ctx):
@client.command()
async def urls(ctx):
content = "\n".join([f"{w.name} - {w.url}" for w in await ctx.guild.webhooks()])
await ctx.send(content)
client.run('tokennumber')
答案 0 :(得分:2)
这是一个使用列表理解的示例命令,该命令将返回每个Webhook的链接:
@bot.command()
async def urls(ctx):
content = "\n".join([f"{w.name} - {w.url}" for w in await ctx.guild.webhooks()])
await ctx.send(content)
以下是列表理解的作用:
@bot.command()
async def urls(ctx):
wlist = []
for w in await ctx.guild.webhooks():
wlist.append(f"{w.name} - {w.url}")
content = "\n".join(wlist)
await ctx.send(content)
后期编辑:
使用您的on_message()
事件:
import discord
client = commands.Bot() # add command_prefix kwarg if you plan on using cmd decorators
@client.event
async def on_message(message):
message.content.lower()
if message.author == client.user:
return
if message.content.startswith("webhook"):
content = "\n".join([f"{w.name} - {w.url}" for w in await message.guild.webhooks()])
await message.channel.send(content)
client.run('token')
如果您不想打印每个Webhooks的名称,则可以只加入每个url:
content = "\n".join([w.url for w in await message.guild.webhooks()])
参考:
Guild.webhooks()
-coroutine
,因此需要await
版本。Webhook.name
Webhook.url