Итого, после небольшого погружения в API.
Интеграции - быть! На тестовой страничке по клику по ссылке удалось перекинуть пользователя в наш чат и присвоить ему правильную роль.
Мы еще в самом начале пути, самой интеграции с форумом еще нет
От пользователя нужен минимум прав - форум попросит только данные о аватаре и возможность приглашать вас на сервера.
На сервере будет "сидеть" бот, который после нажатия на волшебную кнопку добавит вас на сервер, выдаст права и сгенерирует инвайт.
Если на сервере нет каналов "для всех", а только по ролям - пользователь без роли (любой случайный и не подключенный через форум) не сможет попасть на сервер.
Из минусов - тому, кто хочет сидеть в чате придется зарегистрироваться в Дискорде. Относительный минус, но может кого-нибудь отпугнет.
По апи, получилось, что требуется следующее:
(oauth) Запросить у пользователя права на возможность инвайта его на разные сервера. Есть ограничение - приглашать можно только через бота и только на те сервера, где этот бот существует.
(oauth) Посадить бота на сервер и выдать ему нужные гранты. Это ограничение взаимодействия с пользователями - выдавать роли и приглашать на сервер может только бот, поэтому он будет в чате изначально (увы будет слегка не разговорчив ). Думаю в будущем научим разговаривать и может быть что-нибудь еще )
Для проверки наличия пользователя на сервере используются ручки /users/@me и /guilds/{guild.id}/members/{user.id} . Правда для этого боту нужны жирнейшие права на MANAGE_GUILD.
Добавляем пользователя, если его еще не было - PUT /guilds/{guild.id}/members/{user.id} . Волшебная команда, добавляет пользователя на сервер и можем поменять ему ник и роль. Но пользователь ранее должен был подтвердить, что да, он согласен, что мы можем его добавить, плюс бот должен обладать правами CREATE_INSTANT_INVITE и внезапно MANAGE_ROLES которая требует от владельца иметь включенную двуфакторную аунтефикацию ))
Ну и далее просто генерим пользователю инвайт, куда и перенаправляем. Ручка POST /channels/{channel.id}/invites.
Вроде с апи дискорта всё просто ) Осталось встроить в форум