WebhookProxy | Discord webhooks go brrrrrrr

I wouldn’t count on that, like come on, it’s Roblox we are talking about here😂.

I suggest adding rate limits so people can’t spam.

There already are! :wink:

The proxy forces you to comply to the ratelimit (by not sending requests after you hit it) or you risk getting blocked permanently (or of course until I unblock you). The new experimental queue system allows you to send a lot more requests (10/1s) and it puts them into a queue for them to be sent by a processor later.

2 Likes

Where do I find a Webhook Token?

If you’re using the module I made, it’s the second part of the URL:

/api/webhooks/<id>/<token>

1 Like

will you ever make one that works with bots and stuff

Thanks a lot for this! Was very annoyed when discord banned webhooks, and now I can finally begin receiving feedback again.

1 Like

For bots? I’m not quite sure I understand.

like you could send messages to a discord bot from roblox before they blocked the requests from roblox
so maybe a proxy for that too?

This is specifically for webhooks. I doubt I will make a proxy for that mainly because of potential abuse. Webhooks are restricted to one channel, bots tend to be able to post in a lot of places.

Thanks for answering my question!

If your webhooks have stopped working…

Discord had some sort of outage recently (relating to Google Cloud possibly?) that caused a lot of API endpoints to return 404. This appears to have included the webhook API endpoint. WebhookProxy is built to automatically ban webhooks that are considered nonexistent (so a 404 response) which may have led to falsebans. I have unbanned a few webhooks that may have been caught by this, but feel free to message me your webhook IDs if you got caught in this.

Cheers.

When I send a post request to the proxy, it returns some data when it’s successful.

{"proxy":true,"message":"Queued successfully."}

What does it return when the webhook has reached the limit? The reason why I’m asking is because I’m trying to detect when the webhook has reached the limit, and then not send any messages until the limit has been reset. (If I send 10 messages in one second using the queue, wait 1 second before sending more messages)

And I don’t want to get my webhook banned for purposly trying to reach / break the limit to see what PostAsync returns when the limit has been reached.

Makes sense, thanks for reporting the outage, I thought there was something in my code that was breaking it.

Is that a Transformer character?
Man I’m acting like a child

sorry for bumping i hate myself

1 Like

It doesn’t return anything. It just slows down your request when you hit the limit until you stop being ratelimited. This is one of the advantages of it as you can keep hitting it without implementing ratelimiting code and there won’t be any issue besides longer yield times from HTTPService. However, if you badly need this as a feature, I can implement the standard X-Ratelimit style headers that Discord usually uses.

It won’t! Also another advantage of the queue system. You cannot get banned through this unless you flood it with bad requests. Messages are sent at the regular ratelimit.

1 Like

So, can I just check if the data that postasync returns is nil, then make it wait until the limit is reset?

What I meant is that it stalled your request when you hit the ratelimit, then processes it later. Again, if you’d like ratelimiting information, I can provide it, but for this endpoint you don’t really need it.

So I don’t have to respect ratelimits in my code?

For queues, correct. You’re fine.

1 Like

Hey all, I might be about to completely and utterly break everything whilst I perform an update to how the anti-abuse works. This is mainly to permit scalability and to make the proxy stateless (wow, cool buzz words!). I’m trying to avoid storing state in the app and moving to Redis for caching.

If everything goes wrong, I’ll revert it as soon as possible. Don’t worry if your webhooks break for a short amount of time.