Provedor de registro para Telegram (.NET 5 / .NET Core)

Não é segredo que o Telegram é atualmente um dos mensageiros mais populares. Principalmente entre profissionais de TI. É fácil de usar, não tem anúncios embutidos e funciona muito estável. Na maior parte do tempo, comunico-me tanto sobre o trabalho como sobre questões pessoais neste mensageiro. Por isso, um dia pensei que seria conveniente que no mesmo messenger pudesse receber notificações sobre o funcionamento de alguns dos meus serviços. Naquela época, eu estava trabalhando ativamente na integração do projeto // devdigest e do Telegram, então, usando o mesmo SDK nativo do Bot do Telegram, implementei rapidamente o logger.





Há alguns dias, decidi retornar a este projeto, limpar um pouco e refatorar o código e, em seguida, torná-lo publicamente disponível - talvez a capacidade de obter logs no Telegram seja útil para outra pessoa.





É assim que vêm os logs de telegramas de um dos projetos que estou fazendo
É assim que vêm os logs de telegramas de um dos projetos que estou fazendo

Treinamento

Antes de prosseguir com a configuração do próprio logger, você precisará concluir algumas etapas preliminares. Ou seja, criar um canal (público ou privado) onde os logs serão exibidos e criar um bot em telegramas, através do qual será implementado o processo de publicação dos logs.





Telegram, .  , Telegram . , , , .





. - . - .





.

@JsonDumpBot. . :





{
  "update_id": 111001100,
  "message": {
    "message_id": 123456,
    "from": {
      "id": 12345678,
      "is_bot": false,
      "first_name": "FirstName",
      "username": "username",
      "language_code": "en"
    },
    "chat": {
      "id": 123456,
      "first_name": "FirstName",
      "username": "username",
      "type": "private"
    },
    "date": 1111111111,
    "forward_from_chat": {
      "id": -1123456789101,
      "title": "torf.tv logs",
      "type": "channel"
    },
    "forward_from_message_id": 1,
    "forward_date": 1111111111,
    "text": "test"
  }
}
      
      



forward_from_chat -> id





, .





TelegramLoggerOptions, :





  • AccessToken – ;





  • ChatId – (, ), , ;





  • LogLevel – , . Warning, Error;





  • Source – . , ;





– , .





TelegramLoggerOptions.





var options = new TelegramLoggerOptions
{
    AccessToken = "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
    ChatId = "-0000000000000",
    LogLevel = LogLevel.Information,
    Source = "Human Readable Project Name"
};
      
      



- AddTelegram():





builder
  .ClearProviders()
  .AddTelegram(options)
  .AddConsole();
      
      



.





appconfig.json

, :





{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    },
    "Telegram": {
      "LogLevel": "Warning",
      "AccessToken": "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
      "ChatId": "@channel_name",
      "Source": "Human Readable Project Name"
    }
  },
  "AllowedHosts": "*"
}

      
      



Em seguida, uma instância IConfiguration deve ser passada para o método de extensão AddTelegram (),





public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging((context, builder) =>
        {
            if (context.Configuration != null)
                builder
                    .AddTelegram(context.Configuration)
                    .AddConsole();
        })
        .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<startup>(); });

      
      



Um exemplo está aqui





Instalação

Você pode instalar o logger do NuGet ou integrar o código diretamente em seu projeto. A biblioteca é distribuída sob a licença do MIT .












All Articles