SDK

Node.js SDK

公式 @starim-io/bot-sdk: 高レベルの StarIMBot + 低レベルの StarIMBotClient。パラメータの詳細は API インデックスにあります。

インストール

pnpm add @starim-io/bot-sdk

Node.js ≥ 18。レガシー @sochatlive/bot-sdk はメンテナンスされていません。

環境変数

変数意味
SOCHAT_BOT_TOKENsbot_… 承認後
SOCHAT_API_BASEゲートウェイプレフィックス、必ず含める必要があります /api/v1
SOCHAT_WEBHOOK_SECRETsetWebhook.secret_token と同じ

クイックエコー(ポーリング)

import { StarIMBot } from '@starim-io/bot-sdk'

const bot = new StarIMBot({
  token: process.env.SOCHAT_BOT_TOKEN!,
  baseUrl: process.env.SOCHAT_API_BASE!,
  secretToken: process.env.SOCHAT_WEBHOOK_SECRET,
})

bot.command('start', (ctx) => ctx.reply('こんにちは'))
bot.on('message', async (ctx) => {
  const text = ctx.message?.text
  if (text) await ctx.reply(text, { quote: true })
})

await bot.startPolling()

二層

  • StarIMBot: イベント、start / startPolling, ctx.reply
  • StarIMBotClient (bot.client): 直接 /api/v1/bots/** 呼び出し。
const client = bot.client
await client.sendMessage({ chat_id: '<id>', text: 'こんにちは' })
await client.sendPhotoFromFile('<chat_id>', './photo.jpg', { caption: 'キャプション' })

例(リポジトリと同じ — 実行可能)

ソースは botsdk/nodejs/examples/ にあります。

export STARIM_API_BASE="https://<api-host>/api/v1"
export STARIM_BOT_TOKEN="sbot_..."
export STARIM_WEBHOOK_SECRET="setWebhook と同じ"
npx tsx examples/echo-bot.ts
npx tsx examples/slash-command.ts
STARIM_CHAT_ID=<id> npx tsx examples/send-photo.ts ./photo.png

エコー(ウェブフック)

bot.on('message', async (ctx) => {
  const t = ctx.message.text?.trim()
  if (t) await ctx.reply(t)
})
await bot.start({ port: 8787, path: '/webhook' })

スラッシュコマンド

bot.command('start', (ctx) => ctx.reply('ようこそ'))
bot.command('help', (ctx) => ctx.reply('/start /help'))
await bot.start({ port: 8788, path: '/webhook' })

ローカル写真を送信

await client.sendPhotoFromFile(process.env.STARIM_CHAT_ID!, './photo.png', {
  caption: 'from @starim-io/bot-sdk',
})

ポーリング(公開URLなし)

await bot.startPolling()

メソッドマップ

エリアSDKドキュメント
送信sendMessage, sendPhotoFromFile, …送信
ウェブフック / ポールsetWebhook, getUpdates, startPollingウェブフック
チャットgetMyChats, getChat*, ピン/転送チャット読み取り
オーケストレーションsimulateSendMessageガイド

完全な HTTP 契約: API インデックス

MediaUploadCache は非推奨/何もしません—サーバーのチェックサム再利用を使用してください。

クイックスタート · botsdk/nodejs/examples/ · パッケージ README。