Canal DingTalk do OpenClaw
Conecte o OpenClaw ao DingTalk (钉钉) através de um plugin comunitário. Esta integração usa o modo Stream do DingTalk (conexão longa WebSocket), sem necessidade de IP público ou domínio. Suporta mensagens diretas, chats em grupo, texto/imagem/áudio/vídeo/arquivos e respostas em streaming via AI Card. Instale o plugin, crie um app empresarial interno no DingTalk, insira as credenciais e está pronto.
DingTalk Recursos suportados
Mensagens de texto
Suportado
Mídia e arquivos
Suportado
Reações
Não suportado
Threads
Não suportado
Mensagens de voz
Suportado
Chat em grupo
Suportado
DingTalk Pré-requisitos
- Permissão de administrador ou desenvolvedor na organização DingTalk
- O plugin DingTalk instalado: openclaw plugins install @soimy/dingtalk
- OpenClaw Gateway em execução e configurado
- Node.js 18+ instalado no seu servidor
DingTalk Configuração rápida
Instalar o plugin DingTalk
Execute 'openclaw plugins install @soimy/dingtalk' no terminal para instalar o plugin comunitário DingTalk. Para respostas em streaming via AI Card, você também pode escolher o plugin '@dingtalk-real-ai/dingtalk-connector'.
Criar um app empresarial interno no DingTalk
Acesse a plataforma aberta do DingTalk (open-dev.dingtalk.com) e crie um app empresarial interno. Na página de credenciais do app, obtenha o ClientID (AppKey) e o ClientSecret (AppSecret). Em capacidades do app, adicione a capacidade de 'Bot' e selecione o modo Stream para recebimento de mensagens.
Configurar permissões e publicar
Na gestão de permissões, conceda as permissões necessárias: Card.Instance.Write, Card.Streaming.Write, envio de mensagens pelo bot, upload de mídia, etc. Após concluir, publique o app e aguarde a aprovação.
Configurar o OpenClaw e testar
Adicione a configuração do canal DingTalk em ~/.openclaw/openclaw.json, preenchendo clientId e clientSecret. Execute 'openclaw gateway restart' para reiniciar o Gateway e envie uma mensagem ao bot no DingTalk para testar.
DingTalk Exemplo de configuração
{
"channels": {
"dingtalk": {
"enabled": true,
"clientId": "dingXXXXXX",
"clientSecret": "your-app-secret",
"robotCode": "dingXXXXXX",
"corpId": "dingXXXXXX",
"dmPolicy": "open",
"groupPolicy": "open",
"messageType": "markdown"
}
}
}DingTalk Guia de Integração
Visão geral da arquitetura
Escolha de plugin
# Instalar versão @soimy (recomendada)
openclaw plugins install @soimy/dingtalk
# Ou instalar versão @dingtalk-real-ai
openclaw plugins install @dingtalk-real-ai/dingtalk-connectorCriação do app DingTalk e obtenção de credenciais
# Via variáveis de ambiente
export DINGTALK_CLIENT_ID="dingXXXXXX"
export DINGTALK_CLIENT_SECRET="your_app_secret"
# Ou via CLI
openclaw channels addPolíticas de DM e chat em grupo
{
"channels": {
"dingtalk": {
"dmPolicy": "open",
"groupPolicy": "open"
}
}
}Formato de resposta e streaming via AI Card
{
"channels": {
"dingtalk": {
"messageType": "markdown",
"streaming": true
}
}
}Tipos de mensagem e suporte a mídia
Roteamento multi-agente
{
"bindings": [
{ "agentId": "main", "match": { "channel": "dingtalk", "peer": { "kind": "direct" } } },
{ "agentId": "tech-support", "match": { "channel": "dingtalk", "peer": { "kind": "group" } } }
]
}Comandos úteis
DingTalk Referência de Configuração
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Ativar ou desativar o canal DingTalk |
| clientId | string | "" | ClientID (AppKey) do app DingTalk, formato dingXXX, obtido na plataforma aberta do DingTalk |
| clientSecret | string | "" | ClientSecret (AppSecret) do app DingTalk, obtido na plataforma aberta do DingTalk |
| robotCode | string | "" | Código identificador único do bot, obtido na página de configuração do bot na plataforma aberta |
| corpId | string | "" | CorpId da empresa, formato dingXXX, obtido no painel de administração do DingTalk |
| agentId | string | "" | AgentId do app, obtido na plataforma aberta do DingTalk |
| dmPolicy | string | "open" | Política de DM. Opções: open (aberto), disabled (desativado) |
| groupPolicy | string | "open" | Política de chat em grupo. Opções: open (aberto), disabled (desativado) |
| messageType | string | "markdown" | Formato de mensagem de resposta. Opções: text (texto simples), markdown, card (AI Card) |
| streaming | boolean | true | Ativar respostas em streaming via AI Card (efeito de digitação) |
| debug | boolean | false | Ativar modo de depuração com logs detalhados de conexão e mensagens |
Ativar ou desativar o canal DingTalk
ClientID (AppKey) do app DingTalk, formato dingXXX, obtido na plataforma aberta do DingTalk
ClientSecret (AppSecret) do app DingTalk, obtido na plataforma aberta do DingTalk
Código identificador único do bot, obtido na página de configuração do bot na plataforma aberta
CorpId da empresa, formato dingXXX, obtido no painel de administração do DingTalk
AgentId do app, obtido na plataforma aberta do DingTalk
Política de DM. Opções: open (aberto), disabled (desativado)
Política de chat em grupo. Opções: open (aberto), disabled (desativado)
Formato de mensagem de resposta. Opções: text (texto simples), markdown, card (AI Card)
Ativar respostas em streaming via AI Card (efeito de digitação)
Ativar modo de depuração com logs detalhados de conexão e mensagens
DingTalk Perguntas Frequentes
DingTalk Solução de Problemas
O app pode não estar publicado, o modo Stream pode não estar ativado, o ClientID ou ClientSecret pode estar incorreto, ou o plugin pode não estar instalado corretamente.
Possível problema de compatibilidade após atualização do OpenClaw, ou API Key do modelo IA não configurada.
Instabilidade de rede ou problema conhecido de perda de mensagens no modo Stream do DingTalk.
APIs de arquivos de grupo e DingPan podem exigir certificação empresarial. Organizações não certificadas podem não ter acesso a esses recursos.
Faltam permissões relacionadas ao Card, ou messageType está configurado incorretamente.