typescript - GIF:ar skickas som videor i Telegram med grammy-biblioteket


Vi utvecklar en Telegram-bot med hjälp av grammy-biblioteket och har stött på ett problem: när vi försöker skicka GIF-filer med sendAnimation-metoden från grammy-dokumentationen skickas de och visas som videor i Telegram, istället för animationer.

Vi har verifierat att filerna faktiskt är i GIF-format. Kan någon föreslå en lösning eller förklara varför detta händer? Kanske har någon stött på ett liknande problem.

Länk till Grammy-dokumentation: Grammy-dokumentation

async function sendChallengeAnimation(
    ctx: CommandContext<Context>
): Promise<void> {
    const randomAnimationNumber =
        Math.floor(Math.random() * challengeAnimationsCount) + 1
    const video = InputMediaBuilder.video(
        new InputFile(`media/challenge/${randomAnimationNumber}.gif`)
    )
    await ctx.replyWithMediaGroup([video])
}

Svar #1

Den här frågan handlar om funktioner som förlitar sig mer på Telegram-sidan än på Grammy-sidan, och dokumentation kan hittas här.

Förutom Photo, Video, MediaGroup och andra medietyper i Telegram, finns det också typen Animation. Försök att ersätta MediaGroup med Animation.

Om det inte fungerar eller om du behöver MediaGroup-typen, försök att ersätta video i InputMediaBuilder.video med animation.

Här är några fler relevanta dokument för den sista delen.