Basically there is a server with a BOT, i want to make my BOT from my server send a PM to the other BOT, the other BOT is not on my server, is this possible?
This is not possible for two main reasons.
It's explicitly blocked by Discord. You'd get the following error:
The server responded with error 50007: Cannot send messages to this user
Bots can only send a PM to a user if they share a server with the user. So while the other bot does not need to be in your server, your bot will need to be in at least one server with the other bot.
Of course, point 1 makes this a moot point anyway
Related
I need my discord bot written in PYTHON to be able to send a text chat notification about the start of the stream. I tried using webhooks in discord using the IFTTT site, but the alerts come with a huge delay. Can someone throw off some of the code for notification of streams? Thank you in advance
You can use Twitch's Eventsub to recieve a notification when a Stream goes live then modify the payload to match Discord's Webhook format and forward the payload on. Which is essentially what IFTTT does anyway.
Currently EventSub only offers a Webhook Transport. So you need a "Server" that can recieve a HTTP Post from Twitch.
Twitch EventSub is covered here https://dev.twitch.tv/docs/eventsub
Discord Webhooks is covered here https://discord.com/developers/docs/resources/webhook
If you want your Discord Bot to do it itself, then you generally would not use EventSub as you don't want your Bot process to be directly web accesable, so you'd have to poll the Streams Endpoint of the Helix API periodically and test for the Stream changing from offline to online and do whatever is needed. (Or setup a side process to recieve and internal relay the data)
You would use a Twitch App Access/Client Credentials Token, since this is a server to server request.
I am trying to implement private messaging with socket.io for my mobile applications which have a direct messaging feature like Instagram. Right now, I am using Node.js and React Native. I am kinda new to socket.io. I saw many examples of that. However, one thing is not clear in my mind.
User clicks "send message" button. Then I create a socket connection and the user joins a room with socket id. Then user sends a message to that room.
The problem here is, how other user will get the message? Because at this point, I don't think other user knows the room id. Of course if there is a better solution for that, I am open to every suggestion.
One thing you can do is create a room for each person. When the person logs into your app and connects with socket.io, you'll want to have them automatically join the room with their user id.
Then when someone wants to send them a message, they can just send the message to the room for the receiving user.
However, I think if you are building a messaging app, socket.io is not the right way to go. As far as I know you can't listen on sockets while the app is in the background (and even if you could, it would drain your users' battery life). You should use push notifications instead and use the data field (e.g. zo0r/react-native-push-notification and firebase).
I am newbie in programming, so I'm asking to be, let's say, more patient. Thanks.
Now what I want to ask.
So I have a discord bot that check minecraft server status. By checking server status it set for himself Playing status like "Playing x/y players" or "Server unavailable". I want to make notifications when it will send message if status "Server unavailable" changes to "Playing", so users of my discord server get notified when server up. More better will be if notifications will be sent only if server was unavailable for more than X minutes.
One more thing. I do Not ask for sample code, but for directions for what I'm should Google, so I can write code by myself.
Thanks for any help!
Oh btw, bot is written on Node.js.
I'm using net module of node.js to build a chat server based on TCP. I have figured out how to handle the situation where two users both connect to the server. However, for a chat app, even if the user disconnect from the internet, people can still send message to those disconnected users. I just have no idea of how to achieve this.
You need to save messages in a database so that when they log in again you can retrieve sent messages and send them all at once.
There is no way to communicate to a user who has logged off. You just have to queue up the messages and deliver them when they reconnect.
I'm very new to node.js and sokcet.io that's why I need to ask you about the plan I have to see if it makes sense or is plain stupid. I need ongoing server/client communication for two reasons: sending real-time notifications to the user when they have one, and two, for chat between users.
Here is my plan for managing notifications:
PHP script finds out user X has a new notification.
Using Elephant.io send a message to server with user X's id as the data.
On the server side, upon receiving the message, if user X is connected emit him a message telling they have a notification.
user X's brower, Upon recieving the message, uses AJAX to poll the database and receive the text for the notification.
For chat, this is my plan (messages should be save on DB):
When user X submits a chat message to user Y, use ajax to send the text to a PHP script and save it on DB. On success, use elephant.io to send a message to user Y telling them that they have a new chat message.
User Y's browser, after receiving the server message, uses AJAX to poll a php script to receive the new text.
Do you think these plans are superior to short polling using AJAX? I appreciate any comments to improve them.
Finally,I'm curious to know how reliable these technologies (node.js, socket.io, elephant.io) are. Do they work well when the server becomes busy? How do they handle exceptions and errors ,etc.