I'm making a discord bot that sends a message with two buttons. Both buttons sends a message with a picture/gif when pressed. One of them works but the other one gives an error:
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction
Here is the full code:
import os
import discord
from discord.ext import commands
from discord.ui import Button
from discord.ui import View
from dotenv import load_dotenv
import random
intents = discord.Intents.default()
intents.message_content = True
load_dotenv()
TOKEN = os.getenv('Sommer_Challenge_2022_TOKEN')
bot = commands.Bot(command_prefix=';', intents=intents, help_command=None)
channel = bot.get_channel(channel id here)
#facts about sea and beach
#fakta om hav og strand
fact1 = ('Verdens længste strand hedder "Praia Do Cassino". Den ligger i brasilien og er 241 km lang.️')
fact2 = ('Havet dækker omkring 71% af jordens overflade.')
fact3 = ('Ca. 73% af folk der besøger stranden, går i vandet.')
fact4 = ('Der udledes omkring 8-10 tons plastik i havet hvert år. Det svarer til ca. 375.000 halvliters plastikflasker.')
fact5 = ('Over 400 milioner amerikanere går på stranden hvert år.')
fact6 = ('Det Røde Hav er det salteste hav i verden. Vandet indenholder ca. 60 gram salt pr. liter.')
fact7 = ('Ca. 94% af dyrelivet findes havet.')
fact8 = ('Man siger at regnskoven er "jordens lunger", men i virkeligheden producere havet mere end 70% af alt ilt.')
fact9 = ('Det er solen som gør vandet blåt. Det samme gælder himlen.☀️')
fact10 = ('Hvert år dræber hajer mellem fem til ti mennesker. Til gengæld dræber mennesker omkring 100 millioner hajer om året.')
fact11 = ('Ved vesterhavet kan man se bunkere fra 2. verdenskrig.')
fact12 = ('Verdens største sandslot har en diameter på 32 meter og har en højde på 21 meter.')
#Scratch games about sea and beach
#Scratch spil om hav og strand
game_button1 = Button(label="Scratch", url='https://scratch.mit.edu/projects/119134771/')
game_button2 = Button(label="Scratch", url='https://scratch.mit.edu/projects/113456625/')
game_button3 = Button(label="Scratch", url='https://scratch.mit.edu/projects/20743182/')
game_button4 = Button(label="Scratch", url='https://scratch.mit.edu/projects/16250800/')
game_button5 = Button(label="Scratch", url='https://scratch.mit.edu/projects/559210446/')
game_button6 = Button(label="Scratch", url='https://scratch.mit.edu/projects/73644874/')
game_button7 = Button(label="Scratch", url='https://scratch.mit.edu/projects/546214248/')
game_button8 = Button(label="Scratch", url='https://scratch.mit.edu/projects/571081880/')
#tells when bot goes online
#fortæller når en bot går online
@bot.event
async def on_ready():
channel = bot.get_channel(channel name here)
await channel.send('Jeg er online!')
print(f'{bot.user.name} has connected to Discord!')
print(f'conected to: {channel}')
@bot.event
async def on_member_join(member):
await member.send(f'Hej {member.mention}, velkommen på stranden. Nyd solen!☀️')
#does stuff when a specific message is recived
#gør ting når en bestemt besked er modtaget
@bot.event
async def on_message(msg):
if msg.author != bot.user:
if msg.content == (';info'):
await msg.channel.send(f'{bot.user.mention} er lavet af "username" i fobindelse med sommer challenge 2022. \n Hvis du har nogle spøgsmål eller har brug for hjælp, er du velkommen til at sende en dm til "username". \n Kun et af scratch spillene der er givet link til er lavet af "username" \n Piratskibet.dk brugernavn: other username')
elif msg.content == (';fact'):
await msg.channel.send(random.choice([fact1, fact2, fact3, fact5, fact6]))
elif msg.content == (';game'):
view = View()
button = random.choice([game_button1, game_button2, game_button3, game_button4, game_button5, game_button6, game_button7, game_button8])
view.add_item(button)
if button != game_button8:
await msg.channel.send(view=view)
else:
await msg.channel.send('Det her spil er lavet af "username"', view=view)
elif 'hello' in msg.content:
msg.channel.send(f'hello {msg.author.mention}!')
elif 'hej' in msg.content:
await msg.channel.send(f'hej {msg.author.mention}!')
elif msg.content == (';choice'):
embed = discord.Embed(title="", description="", color=0xc27c0e)
file = discord.File(r"C:\Users\username\vs-code-files\Sommer_challenge_2022\sandslot_før_DESTROY.png", filename="sandslot_før_DESTROY.png")
embed.set_image(url="attachment://sandslot_før_DESTROY.png")
embed.set_footer(text="Ødelæg sandslottet?")
button = Button(label="Ødelæg!", style=discord.ButtonStyle.danger)
button2 = Button(label="Lad det være", style=discord.ButtonStyle.success)
view = View()
view.add_item(button)
view.add_item(button2)
async def button2_callback(interaction):
await msg.delete()
embed = discord.Embed(title="", description="", color=0xc27c0e)
file = discord.File(r"C:\Users\username\vs-code-files\Sommer_challenge_2022\sandslot_don't_destroy.png", filename="sandslot_don't_destroy.png")
embed.set_image(url="attachment://sandslot_don't_destroy.png")
embed.set_footer(text="Ok")
await interaction.response.send_message(file=file, embed=embed, view=None, delete_after=6.25)
async def button_callback(interaction):
await msg.delete()
embed = discord.Embed(title="", description="", color=0xc27c0e)
file = discord.File(r"C:\Users\username\Pictures\sandslot_destoy.gif", filename="sandcastle_destoy.gif")
embed.set_image(url="attachment://sandcastle_destoy.gif")
embed.set_footer(text="Sandslottet blev ødelagt")
await interaction.response.send_message(file=file, embed=embed, view=None, delete_after=6.25)
button.callback = button_callback
button2.callback = button2_callback
await msg.channel.send(file=file, embed=embed, view=view, delete_after=5)
bot.run(TOKEN)
Why does this happen?