Основы
Отличия от Discord
API Glitch повторяет API Discord, но Glitch — отдельный продукт, и кое-что в нём устроено по-своему. На этой странице собрано всё, что может удивить программу, написанную для Discord.
Главное правило такое. Чего в Glitch нет, того нет и в API. Если программа передаёт параметр Discord, который Glitch не понимает, сервер не пропустит его молча, а ответит отказом 50035 с названием параметра. Так вы сразу узнаете, что запрос выполнен не так, как вы рассчитывали, а не обнаружите это потом в канале.
Устроено иначе
Адрес. API находится по адресу https://api.glitchapp.online/v10, а не https://discord.com/api/v10. В библиотеках его нужно указать один раз, см. Библиотеки.
Номера. Номера объектов в Glitch состоят из 16 цифр, в Discord из 17–20. Как и в Discord, они растут со временем. Но дату создания из номера по формуле Discord вычислить нельзя, поэтому created_at в discord.py и createdAt в discord.js покажут неверное время. Точное время берите из поля timestamp.
Адрес вебхука в библиотеках. Из-за другой длины номеров и другого домена библиотеки не принимают адрес вебхука Glitch целиком (Webhook.from_url в discord.py, { url } в discord.js). Создавайте вебхук по номеру и ключу.
Картинки. В Discord аватарки и значки отдаёт сервер cdn.discordapp.com, а в объектах передаётся только отпечаток, из которого библиотеки сами собирают ссылку. В Glitch так же, только адрес картинок другой, https://api.glitchapp.online/cdn. Его нужно указать библиотеке, см. Библиотеки. По такой ссылке сервер отвечает переадресацией на сам файл. Размер выбирается из готовых копий 128, 256 и 512 точек, а больше 512 отдаётся оригинал. Отпечаток Glitch длиннее, чем у Discord, и программа не должна рассчитывать на его длину или вид, кроме приставки a_ у анимированной картинки.
Стандартные аватарки. Если у человека нет своей аватарки, Discord показывает одну из стандартных картинок (/embed/avatars/…). У Glitch их нет, такая ссылка ответит 404.
Вложения и карточки. Файлы, картинки карточек и avatar_url вебхука передаются полными ссылками на хранилище Glitch, как и в Discord.
Ответ на сообщение. У ответа есть message_reference с номером исходного сообщения, но нет поля referenced_message с самим исходным сообщением.
Номер вложения. Номер вложения уникален только внутри своего сообщения. Искать вложение по номеру в других местах API нельзя, как и в Discord.
Размер картинок и видео. У вложений-картинок и видео поле size равно 0, их размер сервер не хранит. У файлов размер настоящий.
Длина текста. Discord ограничивает текст сообщения 2000 знаками. Glitch сейчас длиннее не отказывает, но рассчитывать на это не стоит.
Добавлено в Glitch
Поле avatar_url у вебхука. В нём лежит ссылка на аватарку вебхука по умолчанию. В Discord её нужно собирать из хэша.
Чего пока нет
| Возможность Discord | Что ответит API |
|---|---|
Ветки и форумы (thread_id, thread_name, applied_tags) | Отказ 50035 |
Озвучивание сообщения (tts: true) | Отказ 50035 |
Флаги сообщения (flags), в том числе «тихое» сообщение | Отказ 50035 |
Кнопки и меню (components) | Отказ 50035 |
Опросы от вебхука (poll) | Отказ 50035 |
| Новые файлы при правке сообщения | Отказ 50035 |
| Разметка текста (жирный, курсив, ссылки в тексте) | Текст показывается как есть |
| Боты, поток событий, команды «/» | Появятся позже, см. раздел «Боты» |
Чего в Glitch не будет
Ветки, форумы, свои эмодзи сообществ, звуковая панель, медленный режим, события сообщества и шаблоны серверов в Glitch не планируются. Поэтому их не будет и в API.