How can I get an array of all the posts in a forum?
Hey there, I looked at the documentation but couldn't find anything regarding forum channels. I want to create a Slash Command that accepts a forum channel as input and then returns an array of all the posts that are in that forum.
Any help would be much appreciated
17 Replies
- What's your exact discord.js
npm list discord.js
and node node -v
version?
- Not a discord.js issue? Check out #other-js-ts.
- Consider reading #how-to-get-help to improve your question!
- Explain what exactly your issue is.
- Post the full error stack trace, not just the top part!
- Show your code!
- Issue solved? Press the button!@Qjuh thanks for your answer but I still can't get this to work. I receive an error: TypeError: Cannot read properties of undefined (reading 'fetch')
This is my code:
Ok, so I changed the code to this:
And now I get this: Promise { <pending> }
Resources to understand Promise:
- MDN: learn more
- Guide: learn more
- JavaScript info: learn more
Now I get this
I see the last message in the forum but not a list of all the messages
Unknown User•2mo ago
Message Not Public
Sign In & Join Server To View
Any suggestions on how to do that?
It’s a new forum (so there are no many messages) and I want to extract them all
The why is that I used a forum channel on Discord to collect feature requests on a product and now I have to extract everything to a Google Sheet
I was hoping to automate the process as much as possibile via the discord API
In my head I could get the forum ID, get all the posts in it, and then extract the information that I need from each message
But the collection that I have (see above) s only 1 item and not all the messages
I’m using a test server and there are 2 posts at the moment
Oh, I think you might be right. One post is showed as “older” so I guess it’s archived. Am I right? Is there a way to fetch all the messages (including older one)?
I see there is a fetchedActive and a fetchedArchive
:method: GuildForumThreadManager#fetchArchived()
@14.16.3
Obtains a set of archived threads from Discord. This method requires the PermissionFlagsBits.ReadMessageHistory permission in the parent channel.Hey, so this is my new code:
and it's working because I can fetch all the threads in the specific forum (this is an excract of the output).
Now I can't get the messages. I tried to use the id and it didn't work
Unknown User•2mo ago
Message Not Public
Sign In & Join Server To View
Hey @gwapes really sorry about it. Let me explain myself better. With the above code now I am able to fetch all the posts that are in a specific forum.
Now what I need is:
1. the title of every post
2. the number of reactions every post received (with the default tag, which is 👍 )
3. the number of messages that are in that post
From the discussion happened yesterday I understood that now that I have the collection of all the thread, I just need to loop through it and use the
message.fetch(id)
The problem is that since these are threads and not messages in a text channel, I can't understand what is the channel id and the message id I should use:property: ThreadChannel#name
@14.16.3
The name of the thread
:method: ThreadChannel#fetchStarterMessage() @14.16.3
Fetches the message that started this thread, if any. The Promise will reject if the original message in a forum post is deleted or when the original message in the parent channel is deleted. If you just need the id of that message, use id instead.Thank you very much for your help! Definitely not the cleanest code but it does work
Unknown User•2mo ago
Message Not Public
Sign In & Join Server To View
As I said, I need to export in a csv file title, number of reactions and number of comments of all the messages in a forum on Discord
Unknown User•2mo ago
Message Not Public
Sign In & Join Server To View
🙌 thanks