0.0.1 • Published 1 year ago

subgram-sdk v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

subgram-typescript-sdk

Installation

For npm users

npm install subgram-sdk

For yarn users

yarn add subgram-sdk

For bun users

bun install subgram-sdk

Usage

Get your Subgram API token and create a new instance of Subgram API class

import Subgram from "subgram-sdk"

if (!process.env.SUBGRAM_API_TOKEN) {
  throw new Error("SUBGRAM_API_TOKEN is not defined");
}

export const SubgramAPI = new Subgram(process.env.SUBGRAM_API_TOKEN!);

Examples

telegraf.js

If your Telegram bot is built with telegraf.js, you can integrate Subgram API with your bot using this example:

import Subgram from "subgram-sdk";
import { Telegraf, Context } from "telegraf";

const SUBGRAM_PRODUCT_ID = <YOUR_PRODUCT_ID>;

if (!process.env.SUBGRAM_API_TOKEN) {
  throw new Error("SUBGRAM_API_TOKEN is not defined");
}

const SubgramAPI = new Subgram(process.env.SUBGRAM_API_TOKEN!);
const bot = new Telegraf<Context>(process.env.BOT_TOKEN!);

bot.start(async (ctx: Context) => {
  const buttons = [{ text: "Subscribe to Pro", action: "SUBSCRIBE" }];
  const keyboard = Markup.inlineKeyboard(
    buttons.map((button) => Markup.button.callback(button.text, button.action))
  );
  return ctx.reply("Welcome to my bot! Subscribe using the button below", keyboard);
})

bot.action("SUBSCRIBE", async (ctx: Context) => {
  const hasAccess = await SubgramAPI.hasAccess(ctx.from.id, SUBGRAM_PRODUCT_ID);
  const { checkout_url: checkoutUrl } = await SubgramAPI.createCheckoutPage(SUBGRAM_PRODUCT_ID, ctx.from.id, ctx.from.username, "en")
  if (hasAccess) {
    const keyboard = Markup.inlineKeyboard([
      [Markup.button.webApp('🔐 Manage subscription', checkoutUrl)],
    ]);
    return ctx.reply("You are already subscribed! Click the button below to manage subscription", keyboard);
  } else {
    const keyboard = Markup.inlineKeyboard([
      [Markup.button.webApp('💎 Subscribe', checkoutUrl)],
    ]);
    return ctx.reply("Click the button below to subscribe", keyboard);
  }
})

Contributing

We welcome contributions to Subgram SDK. Please fork this repository, make your changes, and open a pull request.

You can install the dependencies using bun and node 18+:

bun install

Then to build the package in the ./dist folder, run:

bun run build

You can also link the package and test it locally in another project. In this package directory run:

bun link

In another project's directory run:

bun link subgram-sdk
0.0.1

1 year ago