Um robô WeChat com funções simples e fácil de usar
Funções suportadas:
Recursos opcionais:
Usar condições prévias
git clone https://github.com/leantli/wc_robot.git
go mod tidy
config.yaml
-> robot_name
e on_contact_nicknames
go run main.go
env GOOS=linux GOARCH=amd64 go build -o wc_robot main.go
no diretório raiz do projetowc_robot
e do arquivo de configuração config.yaml
para o servidor. Depende de você qual diretório fazer upload para o servidor.chmod +x ./wc_robot
dá permissão de execução ao arquivonohup ./wc_robot > robot.log &
execute o programa em segundo plano e envie o log para o arquivo robot.log
tail -50f ./robot.log
observe o log O código QR de login do WeChat também está no log.2022.11.9 TODO(leantli):
weather_msg_handle.city_code
, corresponder à área da cidade correspondente de acordo com mensagens de outros usuários do WeChat para transmissão meteorológica (☑️)2022.11.11 TODO(leantli):
2022.11.28 TODO(leantli):
2022.12.9 TODO(leantli):
2023.2.23: Não devo continuar atualizando este projeto, vou iniciar um novo ramo para tentar outras formas de robôs WeChat. Vamos dar uma olhada mais tarde, quando tiver tempo.
As seguintes modificações de configuração são baseadas em
config.yaml
weather_msg_handle.switch_on
Se deseja ativar a resposta automática para esta palavra-chave, o padrão é true
covid_msg_handle.switch_on
Se deseja ativar a resposta automática para esta palavra-chave, o padrão é true
weather_schedules.switch_on
Se esta tarefa agendada deve ser habilitada, o padrão é false
, enable é definido como true
weather_schedules.to_nicknames
Para quem a previsão do tempo deve ser enviada? O conteúdo preenchido é o apelido do usuário do WeChat. Os apelidos de bate-papo em grupo são suportados. Se várias pessoas precisarem ser preenchidas, separe-as com vírgulas em inglês ','.weather_schedules.to_remarknames
Para quem a previsão do tempo deve ser enviada? O conteúdo preenchido são os comentários do usuário do WeChat. Os comentários do chat do grupo não são retornados durante a comunicação normal do WeChat e não podem ser reconhecidos. ser preenchido, use vírgulas em inglês ',' separeweather_schedules.times
é o horário específico para enviar a previsão do tempo regularmente todos os dias, o formato é "00:00:00", vários horários são separados por vírgulas em inglês ','weather_schedules.city_code
A área onde esta previsão do tempo é transmitida é padronizada para a área de Nanshan de Shenzhen. Se você precisar alterá-la, consulte https://wis.qq.com/city/like?source=pc&city=Nanshan, modifique. o último "Nanshan" sozinho e pesquise Obtenha o city_code correspondente clock_in_schedules.switch_on
Se esta tarefa agendada deve ser habilitada, o padrão é false
, enable é definido como true
clock_in_schedules.to_nicknames
Para quem enviar esta mensagem? Preencha o apelido do usuário do WeChat. Os apelidos de bate-papo em grupo são suportados. Se várias pessoas precisarem ser preenchidas, separe-as com vírgulas em inglês ','.clock_in_schedules.to_remarknames
Para quem esta mensagem deve ser enviada? O conteúdo preenchido são os comentários do usuário do WeChat. Os comentários do bate-papo em grupo não são retornados durante a comunicação normal no WeChat e não podem ser reconhecidos. ser preenchido, separe-os com vírgulas inglesas ','clock_in_schedules.times
é o horário específico para enviar mensagens regularmente todos os dias, o formato é "00:00:00", vários horários são separados por vírgulas em inglês ','clock_in_schedules.text
, como "Estou com tantas saudades da minha esposa❤️", "Ainda não saiu do trabalho?" days_matters.switch_on
Se esta tarefa agendada deve ser habilitada, o padrão é false
, enable é definido como true
days_matters.to_nicknames
Para quem o lembrete deve ser enviado O conteúdo preenchido deve ser o apelido do usuário do WeChat. Os apelidos de bate-papo em grupo são suportados. Se várias pessoas precisarem ser preenchidas, separe-as com vírgulas em inglês ','.days_matters.to_remarknames
Para quem o lembrete deve ser enviado? O conteúdo preenchido são os comentários do usuário do WeChat. Os comentários do bate-papo em grupo não são retornados durante a comunicação normal do WeChat e não podem ser reconhecidos. preenchidos, separe-os com vírgulas inglesas ','days_matters.times
é o horário específico para enviar lembretes todos os dias, o formato é "00:00:00", vários horários são separados por vírgulas em inglês ','days_matters.date
As datas específicas de dias importantes, no formato "aaaa-MM-dd", como "2021-4-3"days_matters.content
são os dias importantes, como "Estar com minha esposa", "Pagar salário"Veja "com minha esposa" como exemplo
Se a data estiver definida para o passado, a mensagem será enviada como "%s (com minha esposa) já faz %d dias"
Se a data estiver definida para a hora do dia, a mensagem será enviada como "Hoje é %s (com minha esposa)"
Se a data estiver definida para o futuro, a mensagem será enviada como "Faltam %d dias até %s (com minha esposa)"
alapi.switch_on
Se deseja habilitar a resposta automática para esta palavra-chave, o padrão é false
, se habilitado, configure-o como true
e preste atenção na configuração token
alapi.token
, você precisa se registrar no site da ALAPI para obtê-lo. Usuários gratuitos da API suportam chamadas 1qps, o que é mais que suficiente para uso pessoal. openai.api_key
: token de autenticação do open_ai, você precisa se registrar no site oficial do openai e obtê-lo em https://beta.openai.com/account/api-keysopenai.gpt_text_switch_on
Se deve ativar a função de resposta de texto GPT, o padrão é false
openai.gpt_text_is_default_reply
Se deve definir a resposta de texto gpt como a resposta padrão (ou seja, chamar automaticamente o GPT quando outras palavras-chave não forem acionadas), false Quando fechado, a resposta gpt precisa ser acionada por meio do formato "gpt xxx" habilitado por padrão;