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_TOKEN | sbot_… 承認後 |
SOCHAT_API_BASE | ゲートウェイプレフィックス、必ず含める必要があります /api/v1 |
SOCHAT_WEBHOOK_SECRET | setWebhook.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。
