discord / discord-api-docs

Official Discord API Documentation
https://discord.com/developers/docs/intro
Other
5.91k stars 1.25k forks source link

`webhook.incoming` OAuth2 scope does not support forum channels #7056

Open DaniDipp opened 1 month ago

DaniDipp commented 1 month ago

Description

The webhook.incoming scope is used to create webhooks on a user's behalf. When prompted to select a server and channel to create the webhook in, forum channels are excluded.

Use-case

My community members may submit forms to apply for special actions on our Minecraft server. (Google Forms, since modals don't support file uploads yet) I am writing an interaction-based http-only bot that posts responses to this form in our admin area on discord for easy review, discussion and (via button components) accept/reject actions. A forum channel would be ideal for this, allowing a separate space for each response, especially since webhooks can't create threads in non-forum channels.

Steps to Reproduce

  1. Set up a test server with a forum channel
  2. Create an application authorization link with the webhook.incoming scope
  3. Navigate to the auth link, select your test server, and observe the forum channel missing from the channel dropdown

Expected Behavior

Webhooks work just fine in forum channels, and when creating them manually or programmatically, there is no difference to any other kind of channel.

Current Behavior

Forum channels are not allowed to be selected in the webhook.incoming authorization flow. All other kinds of channels (text, announcement, voice, stage) are allowed.

Screenshots/Videos

No response

Client and System Information

No library, just plain http requests. Debian

advaith1 commented 1 month ago

Webhooks work just fine in forum channels, and when creating them manually or programmatically, there is no difference to any other kind of channel.

The execution process for webhooks is different for forum channels, and a normal webhook execution request would fail in that case. Therefore any app that does not support them would break if one was selected. Additionally I believe you cannot access the channel type so how would you know how what data format to send?

DaniDipp commented 1 month ago

Yeah, I agree that "just fine" is not the correct phrasing here. The error message on the 400 response says "Webhooks posted to forum channels must have a thread_name or thread_id" (code 220001), so you can check for that unless channel_type gets added the token response.

But is this different to manually creating a forum webhook and putting it in the notification settings on GitHub? If the application doesn't support it, it doesn't support it 🤷 I don't think this would be a breaking change. Users might try to access a feature that the app hasn't implemented yet and find out that it doesn't work. The only usability problem I can see would be that the dev gets the error, not the user.