Итак, возможно я слепой и не умею пользоваться интернетом (а так же читать официальную вики по этой шляпе), но у меня были сложности по запуску discord активности с собственным контентом (ту штуку, в которой можно смотреть youtube, а не статус у человека), потому для людей как я пишу очень "сложный" гайд.
Итак, что нам потребуются:
Язык программирования для бота (или сервис который предоставляет оного)
Бот
(опционально) Discord Сервер
Домен/Обратный прокси
И что-то на чем живет бот (если только не первый пункт)
Язык
Ну, я думаю тут с выбором любимого справятся все сами, но в моём случае используется Python
Бот
Стандартный бот в котором необходимо задать путь до целевой точки обращения сервера.
Для тех кто знает спускаемся ниже, для остальных:
Переходим на Discord Developer Portal
Нажимаем New Application и даём название нашему приложению/боту


После создания приложения перейдите на вкладку OAuth2

Сохраняем ID приложения, понадобится далее
4. Переходим в Activities, где необходимо включить саму функцию активности

Далее должны появится его настройки, которые можно менять по необходимости
Необходим домен куда будут отправляться запросы для взаимодействий
Далее, мы возвращаемся с ссылкой и переходим в вкладку URL Mappings и вставляем ссылку в TARGET

Далее несколько вариантов:
(уже есть функционал в боте)Добавить приложение (будет кнопка на боте, в канале или при личном обращении)
Либо же, в настройках, включить режим разработчика в вкладке Расширенные, (так же можно включить Тестирование приложения, где уже будет необходимо указать ID приложения для тестирования)
Домен/Обратный прокси
Из названия понятно, что нужно место обращений нашей активности.
В самой вики приводят как простые варианты NGROK и CLOUDFLARE, ну или любой другой обратный прокси, или свой домен.
Оба варианта работают, но:
ngrok:
+Заводится и настраивается за полторы минуты
-Не получится использовать в бесплатной версии (При переходе по ссылке будет появляться предупреждение (серверное от ngrok), что вы стучитесь туда-то туда-то ... переходите только если доверяете, но в активности его не увидеть и будет только белое окно)
cloudflare:
+Работает бесплатно (если перейти до момента ввода карты и просто уйти с сайта на какое-то время, потом не потребуется вводит её)
-Длительная конфигурация(вообще, это плюс, но мы в простоту)
Обработчик
Итак, всё сделали, домен есть, бот есть, осталось обрабатывать запросы от него, да и туннель до домена было бы неплохо организовать.
В моём варианте использовался VPS (но, тут уже у кого как, но суть примерна одинакова должна быть)
Необходимо установить приложения обратного прокси (ngrok, cloudflare, etc)
Использовать заглушку для приема данных (можно использовать и уже имеющиеся продукты или что-то более адекватное, ниже простая заглушка для примера работы)
import logging from flask import Flask, request app = Flask(__name__) # Configure logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) @app.route('/', defaults={'path': ''}, methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD']) @app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD']) def catch_all(path): logger.info(f"Received request: {request.method} {request.url}") logger.info(f"Headers: {request.headers}") logger.info(f"Body: {request.get_data(as_text=True)}") return "<html><body><h1>Hello, World!</h1><p>This is a test.</p></body></html>" if __name__ == '__main__': app.run(port=5000)
Поздравляю
Запустив туннель (обратный прокси), обработчик и бота (и то не обязательно, бот нужен только для создания, потом в работе (на базовом функционале) он не требуется) мы получаем работающую активность в Discord-е 👍