@botozap/cli

中文文档
0.24.0发布于 2026/10/31MITES Module近 30 天下载 2042

CLI dev-first para a API pública do BotoZap (WhatsApp Cloud API多租户).

中文使用文档
文档目录15 节
  1. 英斯特拉桑
  2. 厄立特里亚
  3. 葛拉凡多一个洞
  4. 维基百科
  5. 萨伊达:人与JSON
  6. 指挥官
  7. Globais 旗帜
  8. 实例
  9. 错误的悲剧
  10. 埃斯特鲁拉
  11. 德森沃尔维门托
  12. Atendimento,客户关系管理电子议程
  13. (原始内容存档于2018-09-21). Instagram-onda 2
  14. 缩写: Conexão, QR 或 seguidores
  15. 国际印第安人协会

@botozap/ cli (英语)

CLI dev-第1段a API pública do BotoZap (英语: - 平面多租户 (原始内容存档于2018-10-21). WhatsApp Cloud API official, também com o Instagram. 羡慕众生 克伦西·康塔托斯, 客户端, números, 模板 e webhooks serito 做终端 ou de脚本 .

官方的CLI e uma casca fina sbre o SDK @botozap/sdk 有活活活活活活 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}再过一次.

重新定义 节点 22.12推进我们a 小时 (nunca npm/npx/yarn/bun).

状态:预览 0.x。 。 。 . 总统夫人 昏迷者/受难者 1.0A级 API REST (英语) e e estável-se algo faltar na CLI, chame的界面 https://botozap.com.br/api/v1 紧急( t)curl + 键 Authorization: Bearer) (中文(简体) ). CLI cobre hoje um SUBCONJUNTO da API: 传输员(broadcasts) 存在 没有SDK/REST, mas ainda não têm commando。 错误 : 单发问题 ——"无"(nunica inclua sua chave de API)无"再".

英斯特拉桑

全球通讯:

pnpm add --global @botozap/cli
botozap --version

Para 实验 sem instalar 全球:

pnpm dlx @botozap/cli --help

厄立特里亚

一个CLI fala com /api/v1 自动端口 com o header Authorization: Bearer bz_live_… (赫达多做SDK). 护法护卫 X-API-Key{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}我爱她 守护者{\fn方正黑体简体\fs18\b1\bord1\shad1\3cH2F2F2F}波多扎普的口香糖 / 闲置。 。 。 .

沙丘( e a URL base) são resolvidas 巢穴 优先赔偿数字 :

项目1o(矿井)2°3个几内亚
API 密钥--api-keyBOTOZAP_API_KEY~/.botozap/cli/config.json—— 说
URL 基础--api-urlBOTOZAP_API_URL~/.botozap/cli/config.jsonhttps://botozap.com.br/api/v1

欧 config.json 费卡 ~/.botozap/cli/德菲纳州 BOTOZAP_CONFIG_DIR (单位:千美元) BOTOZAP_CONFIG_DIR=/caminho/do/config botozap login) (中文(简体) ).

塞古兰察: 语法 BOTOZAP_API_KEY (env) 欧 botozap login 传球 --api-key commando)- CLI ficam 不作螺旋形外壳 (原始内容存档于2018-09-21) (英语). e visíveis em ps阿尔格夫。 有一面旗子是Conveniência e CI, mas trata a crave (原始内容存档于2018-09-21). Como segredo em argv. 欧 config.json 总统府 0600 (德雷多里奥) 0700) (中文(简体) ).

葛拉凡多一个洞

# stub amigável: explica /chaves e oferece colar a chave
botozap login

# sem perguntar (CI); a chave fica no histórico do shell
botozap login --api-key bz_live_xxxxxxxxxxxx

# direto
botozap config set apiKey bz_live_xxxxxxxxxxxx
botozap config set baseUrl https://botozap.com.br/api/v1

botozap config get     # mostra config (apiKey mascarada)
botozap config path    # caminho do config.json

botozap login 额. 斯图布. O BotoZap aninda não tem 登录 OAuth por navegador; 存档副本; {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}哦 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}哦 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}哦 /chaves e 严重性 a cavave colada no config local. 当地一个小洞.

维基百科

botozap status
# Autenticado. Conta acessível.
# URL base       https://botozap.com.br/api/v1
# Origem da chave config
# Números        3

萨伊达:人与JSON

萨伊达岛 人类 (塔贝拉斯语/林哈斯语). 段落脚本, 使用 -o json (单位:千美元) --output json), que encrime o JSON (JSON) (英语) 钉子 已更新 :

botozap messages list -o json | jq '.data[].id'

列表 预览 o 信封 da API{ data, paging } por光标, { data, meta } 页:1. 图案 (单位:千美元)get, (中文(简体) ), create, (中文(简体) ), update, (中文(简体) ), media ingest, (中文(简体) ), webhooks test, (中文(简体) ), deliveries replay(中文(简体) ) 萨姆 乌克托斯省 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}哦! {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}哦 data em volta——小马 (原始内容存档于2019-03-25) (英语). Métodos de project do SDK já entregam a entidade. messages send 答复 轮回 POST /messages 我们的信封.

指挥官

botozap messages      send | send-media | send-interactive | send-location | react | list | get
botozap conversations list | get | update | typing | read | request-consent | delete
botozap contacts      list | get | create | update | delete | consents | record-consent
botozap media         ingest
botozap customers     list | get | create | update | delete
botozap setup-links   list | create | update      (--customer <id>)
botozap numbers       list | get | update | health
botozap numbers profile get | update | photo        (perfil do WhatsApp)
botozap numbers prompts get | update | clear        (perguntas prontas e comandos)
botozap numbers qr      list | create | get | update | delete
botozap numbers blocked list | block | unblock
botozap numbers history-import get | set          (conversas antigas do app, coexistência)
botozap channel-accounts list | get
botozap channel-accounts comment-ai get | set | runs   (Instagram)
botozap channel-accounts comment-rules list | get | create | update | delete | metrics   (Instagram)
botozap channel-accounts message-rules list | get | create | update | delete   (Instagram)
botozap channel-accounts messenger-profile get | update | delete | sync   (Instagram)
botozap templates     list | get | create | update | delete | sync
botozap webhooks      list | get | create | update | delete | test
botozap deliveries    list | replay                 (webhook_deliveries)
botozap logs          list                          (api_logs)
botozap users         list
botozap usage         meta-costs                    (custo aproximado da Meta)
botozap billing       (plano, slots e garantia) | slots create | slots cancel
botozap exports       create | list | get           (exportação de dados da Conta)
botozap team-events   list                          (registro de atividades; só Administrador)
botozap config        set | get | path
botozap login
botozap status

Globais 旗帜

  • --api-key <chave> 编号 : --api-url <url> {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}所以说...
  • -o, --output <human|json> 桑达岛(padrão) human) (中文(简体) ).
  • 列表为 por 光标数字 : --limit, (中文(简体) ), --after, (中文(简体) ), --before。 。 。 .
  • 列表为 por 页:1数字 : --page, (中文(简体) ), --per-page。 。 。 .

实例

# Enviar texto simples
botozap messages send --to 5511999999999 --text "Olá do BotoZap!"

# Enviar payload completo (template, mídia, etc.) via arquivo ou stdin
botozap messages send --input ./mensagem.json
cat ./mensagem.json | botozap messages send --stdin

# Repetir sem mandar em dobro: a mesma chave com o mesmo corpo devolve a
# resposta original. Derive a chave do evento, não gere uma nova a cada chamada.
# Vale em send, send-media, send-interactive, send-location e react.
botozap messages send --input ./entrega.json --idempotency-key entrega-123-2026-10-20

# Botões/lista/link (objeto interactive da Cloud API), localização e reação
botozap messages send-interactive --to 5511999999999 --input ./botoes.json
botozap messages send-location --to 5511999999999 --latitude -3.119 --longitude -60.0217 --name "Loja"
botozap messages react --to 5511999999999 --message-id <uuid-ou-wamid> --emoji 👍
botozap messages react --to 5511999999999 --message-id <uuid-ou-wamid> --remove

# Mídia por link (WhatsApp ou Instagram; o Instagram não aceita --caption)
botozap messages send-media --to 5511999999999 --type image --link https://exemplo.com/foto.jpg --caption "Seu pedido"

# Instagram: --to é o IGSID do contato; --from aceita o id da conta na Meta ou o
# UUID da Conta de canal. O recibo traz wamid null e o mid em external_id.
botozap messages send --to 17841400000000123 --text "Tenho estes horários:" \
  --quick-reply "9h=sabado_09" --quick-reply "10h30=sabado_1030"
botozap messages send-media --to 17841400000000123 --type image --link https://exemplo.com/foto.jpg
botozap messages react --to 17841400000000123 --message-id <mid> --emoji ❤️
# Opções de resposta: só Instagram, só com --text, até 13 (título ≤ 20 caracteres),
# dentro da janela de 24h. Formato completo (content_type user_email/user_phone_number):
botozap messages send --to 17841400000000123 --text "Qual seu e-mail?" \
  --quick-replies-json '[{"content_type":"user_email"}]'

# Contas de canal e conversas de uma origem
botozap channel-accounts list --channel instagram   # coluna TOKEN: saúde da conexão
botozap conversations list --channel instagram --channel-account-id <uuid>

# Regras de comentário do Instagram (comment-rules:read / comment-rules:write)
botozap channel-accounts comment-rules list <conta>
botozap channel-accounts comment-rules create <conta> --keyword preço --dm-text "Te mandei os valores!" --reply-text "Te chamei no direct!"
botozap channel-accounts comment-rules update <conta> <regra> --active false
botozap channel-accounts comment-rules delete <conta> <regra>

# Listas JSON preservam frases; [] limpa. next-post true aguarda o próximo post.
botozap channel-accounts comment-rules create <conta> --dm-text "Oi!" \
  --keywords '["preço","valor"]' --excluded-keywords '["não quero"]' \
  --reply-variations '["Te chamei!","Veja o direct!"]' --next-post true
botozap channel-accounts comment-rules update <conta> <regra> --keywords '[]' --next-post false

# Instagram: interactive button (web_url/postback) ou generic (1–10 cards)
botozap messages send-interactive --to 17841400000000123 --from <conta> --input ./cards.json
cat cards.json | botozap messages send-interactive --to 17841400000000123 --from <conta> --stdin
# --tag human_agent é opcional, sujeito à flag e janela da API.

# Perguntas e menu (messenger-profile:read/write; sem sandbox)
botozap channel-accounts messenger-profile get --channel-account-id <conta>
botozap channel-accounts messenger-profile update --channel-account-id <conta> \
  --json '{"ice_breakers":[{"question":"Horários?","payload":"horarios"}]}'
botozap channel-accounts messenger-profile update --channel-account-id <conta> --input ./perfil.json
cat perfil.json | botozap channel-accounts messenger-profile update --channel-account-id <conta> --stdin
# PATCH: ausente preserva; null ou [] remove a seção.
botozap channel-accounts messenger-profile update --channel-account-id <conta> --json '{"persistent_menu":null}'
botozap channel-accounts messenger-profile sync --channel-account-id <conta>
botozap channel-accounts messenger-profile delete --channel-account-id <conta>

# Listar mensagens com filtro e paginação por cursor (coluna ORIGEM = source)
botozap messages list --direction inbound --limit 20
botozap messages list --after <cursor>
botozap messages list --sort event_at   # ordem real; reuse o cursor com o mesmo --sort

# Webhook com a categoria opt-in de mensagens do app (coexistência)
botozap webhooks create --url https://exemplo.com/hook --events messages,app_messages

# Encerrar uma conversa
botozap conversations update <id> --status ended

# Criar contato (display_name = nome dado pela empresa; o profile_name vem do canal)
botozap contacts create --wa-id 5511999999999 --display-name "Maria (loja centro)"
botozap contacts update <id> --clear-display-name

# Consentimento. Pedido na conversa (botões no WhatsApp, respostas rápidas no
# Instagram; só com a janela de 24h aberta: outside_window ou window_closed):
botozap conversations request-consent <id> --purpose marketing
# Consentimentos do contato (vigente e histórico) e registro de um novo (origem api).
# Sobre uma recusa do contato: consent_opted_out (409), nada é gravado.
botozap contacts consents <id>
botozap contacts record-consent <id> --channel whatsapp --purpose marketing --state granted --evidence "site"
# Palavras de saída/volta e textos de confirmação do Cliente (sem lista padrão):
botozap customers update <id> --opt-out-keyword sair --opt-out-keyword parar \
  --opt-in-keyword voltar --opt-out-confirmation "Pronto, sem mais mensagens."
# Botões de resposta rápida do template que são de saída (o toque grava a recusa):
botozap templates update <id> --opt-out-button "Sair"
# Editar o conteúdo (volta para análise da Meta) e excluir (sem volta):
botozap templates update <id> --components novo.json [--category UTILITY]
botozap templates delete <id> --yes
# Status parado (ex.: PENDING muito depois do normal)? Traz o estado real da Meta:
botozap templates sync                      # --customer-id <id> limita a um cliente
# Excluir conversa: SEM VOLTA (mensagens, notas, vínculos e mídia; o contato fica).
# Só Administrador; pede confirmação (use --yes fora de um terminal).
botozap conversations delete <id>

# "Digitando…" enquanto prepara a resposta (só com mensagem recebida e janela aberta;
# repetir em menos de 20 s não chama a Meta de novo) e marcar como lida (tiques azuis):
botozap conversations typing <id>
botozap conversations read <id>

# Responder citando uma mensagem da conversa (UUID ou wamid/mid; não vale em react)
botozap messages send --to 5511999999999 --text "Combinado!" --reply-to <message_id>
# Mensagem de voz (só audio, WhatsApp; arquivo .ogg com Opus mono)
botozap messages send-media --to 5511999999999 --type audio --link https://cdn.exemplo.com/oi.ogg --voice

# Modelos prontos de Régua (os mesmos da galeria de Automações) e ligar um no Cliente
botozap journeys catalog
botozap journeys enable-model boas_vindas --customer-id <id> [--phone-number-id <id>]

# Diagnóstico do agente de IA (o mesmo do painel; só lê, sem custo)
botozap ai agents diagnostic --input-file diag.json   # {"customer_id":"…","id":"…"}

# Configurações do número do WhatsApp (direto na Meta; sem sandbox)
botozap numbers profile get <id>
botozap numbers profile update <id> --about "Atendemos de segunda a sábado" --website https://loja.com.br
botozap numbers profile photo <id> logo.png      # JPG ou PNG até 4 MB
botozap numbers prompts update <id> --prompt "Ver horários" --command "cardapio=Receber o cardápio"
botozap numbers qr create <id> --message "Oi! Vi o cartaz na loja." --format SVG
botozap numbers qr delete <id> <code>            # sem volta; pede confirmação (--yes)
botozap numbers blocked block <id> --contact-id <uuid>   # só quem escreveu nas últimas 24 h
botozap numbers blocked unblock <id> <wa_id>

# Conversas antigas do app WhatsApp Business (número em coexistência, logo depois de conectar)
botozap numbers history-import get <id>
botozap numbers history-import set <id> --days 180   # 0, 30 ou 180; uma vez por conexão

# Exportação de dados (exports:read / exports:write) e registro de atividades (team:read)
botozap exports create --customer-id <id> --format csv
botozap exports get <exportId>
botozap team-events list --action export.requested --since 2026-10-01

# Ingerir mídia por URL (WhatsApp: sobe para a Meta pelo Número; não envia mensagem)
botozap media ingest --phone-number-id <id> --source https://exemplo.com/foto.jpg

# Clientes (offset). A coluna SUSPENSO marca o Cliente acima do teto do Free
# (1 negócio): recebe, mas não envia (402 free_cap). No Free, criar o 2º Cliente
# também responde 402 free_cap.
botozap customers list --page 1 --per-page 25
botozap customers create --name "Acme LTDA" --external-customer-id acme-001

# Setup links de um cliente
botozap setup-links list --customer <customerId>
botozap setup-links create --customer <customerId> \
  --success-redirect-url "https://seu-app.com/whatsapp/ok" \
  --failure-redirect-url "https://seu-app.com/whatsapp/erro"
# Redirects só em estado final: concluído → success (status=completed); link
# esgotado → failure (status=failed); cliente volta num erro recuperável →
# failure (status=cancelled, o link segue válido). Todo destino recebe
# setup_link_id; URLs https, sem usuário/senha, até 2048 caracteres.

# Link do Instagram (um canal por link; padrão whatsapp). O cliente confirma que
# a conta é profissional e que as mensagens estão liberadas e entra com o
# Instagram. --connection-types não vale aqui (422 invalid_connection_types).
botozap setup-links create --customer <customerId> --channel instagram \
  --success-redirect-url "https://seu-app.com/instagram/ok"

# Números, rótulo local e saúde. A coluna SUSPENSO marca o número acima do teto
# do Free (1 número), ou de um Cliente suspenso: recebe, mas não envia
# (402 free_number_cap ou free_cap). Assine ou desconecte o outro número.
botozap numbers list
botozap numbers update <id> --label "Recepção"   # --clear-label remove
botozap numbers health <phoneNumberId>
# Mensagens pararam de chegar com a autorização valendo (checks.webhook_subscription
# "missing"): inscreve o BotoZap de novo na Meta, sem refazer a conexão.
botozap numbers resubscribe-webhooks <phoneNumberId>

# Custo aproximado da Meta (custo ausente aparece como "indisponível", nunca 0)
botozap usage meta-costs --customer-id <customerId> --from 2026-09-01 --to 2026-09-25

# Plano e slots adicionais (só chave de API; scopes billing:read / billing:write).
# O plano pago inclui 1 negócio; cada negócio a mais ocupa um slot de R$ 47/mês.
botozap billing
# Compra um slot vazio (gera cobrança). A mesma --idempotency-key devolve o mesmo
# slot em vez de comprar outro. Recusas: plan_required (assine o plano),
# slot_limit (pague uma fatura em aberto), billing_customer_required (fale com o suporte).
botozap billing slots create --idempotency-key compra-2026-10-17
# Cancela um slot vazio, sem reembolso (ocupado: slot_in_use, desconecte o negócio antes).
botozap billing slots cancel <slotId>

# Templates (componentes via arquivo JSON)
botozap templates create --name boas_vindas --language pt_BR \
  --category UTILITY --components ./components.json

# Webhooks (eventos válidos: messages, statuses, crm, account, app_messages (opt-in); secret: 16–256 caracteres)
botozap webhooks create --url https://meu.app/webhook \
  --events messages,statuses --secret troque-por-um-segredo-longo
# Só entregas de um cliente; --clear-customer volta a receber de toda a conta
botozap webhooks update <id> --customer-id <customerId>
# Só eventos de alguns canais (ids de `channel-accounts list`, 1 a 100;
# repetível ou separado por vírgula). Omitido no create = todos os canais.
botozap webhooks create --url https://meu.app/webhook --events messages \
  --channel-account-id <canalA> --channel-account-id <canalB>
botozap webhooks update <id> --channel-account-id <canalA>,<canalB>   # substitui a lista
botozap webhooks update <id> --all-channels                           # volta a todos
# get mostra os canais (todos | lista | nenhum) e a saúde por canal: só canais
# com falha, com falhas seguidas, próxima tentativa e pausa. Um canal pausado
# (15ª falha) não para os outros; health_status do webhook resume o pior canal.
# Na listagem, CANAIS e SAÚDE ("degraded (1 canal com falha)").
botozap webhooks get <id>
botozap webhooks test <id>

# Entregas e logs
botozap deliveries list --status failed
botozap deliveries list --status failed --channel-account-id <id-do-canal>
# reenvia uma entrega esgotada (exhausted) ou cortada pelo limite (limited), como o Reenviar do painel
botozap deliveries list --status exhausted
botozap deliveries replay <id-da-entrega>
botozap logs list --status-code 500

错误的悲剧

API 我们O信封 { "error": { "code", "message" } }CLI 允许 a message 没有 标准 e sai com (英语) 科迪戈1号数字 :

Erro [authentication_error]: Chave de API inválida ou expirada.

数字 429 rate_limited,一个CLI 英亩centao Retry-After (单位:千美元) X-RateLimit-*, (中文(简体) ), (原始内容存档于2018-09-25) (英语). squando senters) à mensagem (spere sesse antes de reenviar.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}一个CLI mostra o código {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}我需要你帮忙 da Meta junto da mensagem: (原始内容存档于2018-09-29)

Erro [meta_error]: <mensagem da API> — código da Meta: 131026

科姆语 -o json,错误的 saem 无阶梯 (sdout fica limpo para ) (英语: 管子: { "error": { "code", "message", "status", "meta_code"?, "rate_limit"? } }O 退出 代码 e 1个 para qulquer 错误 (0 - 不,不,不,不 code 做JSON,não pelo 退出代码.

埃斯特鲁拉

src/
  index.ts            # entrada (bin), parsing com commander, tratamento de erro
  client.ts           # resolve config e instancia `BotoZap` de @botozap/sdk
  config.ts           # leitura/escrita de ~/.botozap/cli/config.json + resolução
  output.ts           # formatação human/json (tabelas, detalhes, paginação)
  commands/*.ts        # um arquivo por recurso

德森沃尔维门托

pnpm --filter @botozap/cli typecheck   # tsc --noEmit
pnpm --filter @botozap/cli test        # vitest
pnpm --filter @botozap/cli build       # tsc -> dist/
node packages/cli/dist/index.js --help

Atendimento,客户关系管理电子议程

指挥官: saved-replies, (中文(简体) ), inbox-tools, (中文(简体) ), opportunities, (中文(简体) ), demands, (中文(简体) ), radar, (中文(简体) ), journeys, (中文(简体) ), appointments, (中文(简体) ), calendar, (中文(简体) ), assignments, (中文(简体) ), contact-stages 电子 contact-fieldsCAS e em. 卡达分公司 --help; os campos e (英语) filtros são lidos de (法语) --input-file arquivo.json启用 -o json 段落脚本. O arquivo mantém listas, objetos, 无效的 e 时标 prittisos sem slem 逃出外壳.

botozap saved-replies list --input-file filtros.json -o json
botozap opportunities create --input-file oportunidade.json -o json
botozap appointments availability --input-file disponibilidade.json -o json

Contotos e exemplos dos arquivos JSON (英语)。 。 。 .

(英文) IA usa exclusionamente credenciais próprias (BYOK): SDK (英语) client.ai,CLI 数据 botozap ai e- ferramentas MCP ai_*代理版本多斯, 验证器, Credenciais, conhecimento, 记忆、技能、跟随、转接、接力, avisos, propostas de aprendizado e comerciais, control de acesso (elegibilidade), (意大利语), 女演员、女演员、模特儿、女演员、女演员 范围 agents:read/write; aprovação exige chave criada por ; 翻译 : (原始内容存档于2018-10-21). owners/admin aninda autorizado. (原始内容存档于2018-09-29). Prévia não envia WhatsApp. 圣母领报社 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来帮帮帮忙 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来帮帮帮忙. Contotos e 实例 IA。 。 。 .

(原始内容存档于2018-09-21). Instagram-onda 2

科门塔里奥岛 dm_button_title, (中文(简体) ), delivery_text 电子 delivery_media。 。 。 . 男士(男士)message-rules:read/write(三); 国家科学院 from编号 :to (单位:千美元)comment-rules:read) (中文(简体) ). Controto e exemplos de SDK, CLI e MCP 相向。 。 。 .

缩写: Conexão, QR 或 seguidores

botozap channel-accounts connection get CONTA
botozap channel-accounts connection resubscribe CONTA
botozap channel-accounts connection disconnect CONTA
botozap channel-accounts message-rules qr CONTA REGRA --out campanha.png --format png
botozap channel-accounts message-rules qr CONTA REGRA --out campanha.svg --format svg
botozap channel-accounts comment-rules update CONTA REGRA --live true
botozap channel-accounts comment-rules update CONTA REGRA --require-follow true --non-follower-text 'Siga a conta e toque de novo'
botozap channel-accounts message-rules update CONTA REGRA --require-follow false --clear-non-follower-text
botozap contacts list --follows-business true
botozap conversations list --follows-business false

Conexão exige chave live e pissès (英语). 克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 numbers:read编号 :numbers:write一种无痛药 QR 任务 message-rules:read, (中文(简体) ), --out (原始内容存档于2019-10-21) (英语). e usa PNG por por paderão. --live true|false 国家保护协会 422 feature_unavailable。 。 。 . --require-follow true|false, (中文(简体) ), --non-follower-text 电子 --clear-non-follower-text 国家妇女委员会 Nas regras de mensagem, essas旗补充了JSON字体; Campos duplicados content JSON e são recusados。 Nas de commentário,使用campos ou uma fonte JSON,como nos demais campos. 中国植物物种信息数据库.

国际印第安人协会

botozap channel-accounts comment-ai get CONTA
botozap channel-accounts comment-ai set CONTA --enabled true --agent AGENTE --daily-limit 50
botozap channel-accounts comment-ai runs CONTA --page 1 --per-page 30 -o json
botozap channel-accounts comment-ai set CONTA --enabled false
botozap channel-accounts comment-ai set CONTA --agent null

请使用 o UUID interno da Conta de Canal 。 获取/运行Exigem agents:read; 设置外观 agents:write e plano com IA, exceto quando somente desliga. 中国植物物种信息数据库. 沙盒; PATCH 没有OAuth e exclusivo做苦艾酒。 Ativar reposte repostas públicas e DMs 存档副本 自动操作。 以众旗为羡慕; --agent null 跛脚一 (原始内容存档于2019-10-21). seleção quando desligada. O Limite aceita inteiros de 1 a 200 e renova no dia de America/Sao_Paulo. 保留保留地 (包括incertas, pré-requisitos; 运行 inclui decisão, motivo legível) (包含 incertas, pré-requisitos; 运行在 dicisão, motivo legível (原始内容存档于2018-10-21) (英语). estado dos envios.

版本与发布记录

@botozap/cli 共发布 30 个版本,首次发布于 2026/07/15;过去 12 个月发布了 30 个版本。

版本发布日期距今
0.24.0latest2026/10/318 天前
0.23.02026/10/309 天前
0.21.12026/10/2910 天前
0.21.02026/10/2514 天前
0.20.02026/10/2514 天前
0.19.02026/10/2514 天前

其他发布通道:next → 0.1.1。

关于 @botozap/cli 的常见问题

@botozap/cli 是什么?

CLI dev-first para a API pública do BotoZap (WhatsApp Cloud API多租户).

如何安装 @botozap/cli?

在项目目录运行 npm install @botozap/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 botozap,可以用 npx botozap 直接运行。

@botozap/cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/botozap__cli 是否存在。

@botozap/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@botozap/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@botozap/cli 可以商用吗?

@botozap/cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@botozap/cli 的下载量有多少?

根据 npm 官方下载统计,@botozap/cli 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,042 次,日均约 68 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@botozap/cli 还在维护吗?

最新版本 0.24.0 发布于 2026/10/31(8 天前);至今共发布 30 个版本,其中过去 12 个月发布了 30 个;首次发布于 2026/07/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。