Conversational interfaces for grammY
npm install @grammyjs/conversations---
The grammY conversations plugin lets you create powerful conversational interfaces with ease.
> This is version 2 of the plugin.
> Version 2 is a complete rewrite from scratch.
> If you are still using version 1.x, check out the migration guide.
> (The old docs are no longer be updated but they can still be found here.)
You should check out the official documentation of the plugin, but here is a quickstart for you to get up and running.
Run npm i @grammyjs/conversations and paste the following code:
``ts
import { Bot, type Context } from "grammy";
import {
type Conversation,
type ConversationFlavor,
conversations,
createConversation,
} from "@grammyjs/conversations";
type MyContext = ConversationFlavor
type MyConversationContext = Context;
type MyConversation = Conversation
const bot = new Bot
/* Defines the conversation /
async function greeting(
conversation: MyConversation,
ctx: MyConversationContext,
) {
await ctx.reply("Hi there! What is your name?");
const { message } = await conversation.wait();
await ctx.reply(Welcome to the chat, ${message.text}!);
}
bot.use(conversations());
bot.use(createConversation(greeting));
bot.command("enter", async (ctx) => {
await ctx.reply("Entering conversation!");
// enter the function "greeting" you declared
await ctx.conversation.enter("greeting");
});
bot.command("start", (ctx) => ctx.reply("Hi! Send /enter"));
bot.use((ctx) => ctx.reply("What a nice update."));
bot.start();
``
Nifty!