Discord Bot using Moralis?

Iā€™m currently building a Discord Bot (node.js) and have it currently using Moralis SDK to log in to Metamask. I want it to be able to get balances and whatnot but canā€™t figure out how to get the server to send info back to the bot.

Currently, Iā€™m using the Auth-Balances-NFTs (https://github.com/ChrisMoralis/Moralis-Tutorials/blob/main/01%20Auth-Balances-NFTs/01%20Auth-Balances-NFTs.html) code for a simple login page. Works fine and sends the info to the server.

How can I relay the User info back to the bot from the server? For example, user uses ā€˜loginā€™ command, and the login page pops up with Moralis Authenticate on MetaMask. Click sign and server info updates but the bot doesnā€™t receive the info.

1 Like

Hey you are gonna need your own front page which holds the authentication logic. And a server side running that communicates with discord, for this example lets assume node.

  • When redeirecting the user to this page make sure to send there discordid, username etc as a param may it be a get or post param.

  • Next on successful authenticate, you want to let node know that there is a successful authenticate. To do this

Moralis.authenticate().then((res)=>{
// Get the User
const User = Moralis.Object.extend("User");
const query = new Moralis.Query(User);
const currUser = query.get(Moralis.user.id).first();
// Error check to prevent crash
if (currUser){
// Set the discord id for the user
curUser.set("discordId", discordIdThatYouSent);
curUser.save().then(()=>{
// Hit your node endpoint up with the user Info.
// From there because you have discord id you can send the user a message and whatever else you want to do
})
}
})
.catch((err)=>{
// Something went wrong :(
})

Thatā€™s a general jist of how I see it building out. I hope this helps

1 Like

Thanks. How do I send the user info back to the node endpoint? The main issue I have is not knowing how to relay the info from the database/server back to discord.

Iā€™m missing something and I canā€™t figure it out.

You create a end point for example letā€™s say you are using express you could have something like.

app.post(ā€œ/registrationSucessā€, (req,res)=>{
   // relayed info is under req object  

})

After u have this done. On success of registration you hit this endpoint with user data and that way node will know this is a new registration.

Hope this helps

I wasnā€™t using expressjs but I keep coming back to it so I might as well. Thanks