Пример #1
0
        public static HttpClient Create(ILineConfiguration configuration, ILineBotLogger logger)
        {
            var loggingDelegatingHandler = new LoggingDelegatingHandler(logger);

            var client = new HttpClient(loggingDelegatingHandler)
            {
                BaseAddress = new Uri("https://api.line.me/v2/bot/")
            };

            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {configuration.ChannelAccessToken}");

            return(client);
        }
Пример #2
0
 public ModuleManager(
     ILineConfiguration configuration,
     ILineBot bot,
     LineBotService service)
 {
     Configuration = configuration;
     Bot           = bot;
     Service       = service;
     if (SuperUsers == null)
     {
         SuperUsers = new List <string>();
     }
 }
Пример #3
0
        internal LineBot(ILineConfiguration configuration, HttpClient client)
        {
            Guard.NotNull(nameof(configuration), configuration);

            if (string.IsNullOrWhiteSpace(configuration.ChannelAccessToken))
            {
                throw new ArgumentException($"The {nameof(configuration.ChannelAccessToken)} cannot be null or whitespace.", nameof(configuration));
            }

            if (string.IsNullOrWhiteSpace(configuration.ChannelSecret))
            {
                throw new ArgumentException($"The {nameof(configuration.ChannelSecret)} cannot be null or whitespace.", nameof(configuration));
            }

            _configuration = configuration;
            _client        = client ?? HttpClientFactory.Create(configuration);
        }
Пример #4
0
        internal LineBot(ILineConfiguration configuration, HttpClient?client, ILineBotLogger?logger)
        {
            Guard.NotNull(nameof(configuration), configuration);

            if (string.IsNullOrWhiteSpace(configuration.ChannelAccessToken))
            {
                throw new ArgumentException($"The {nameof(configuration.ChannelAccessToken)} cannot be null or whitespace.", nameof(configuration));
            }

            if (string.IsNullOrWhiteSpace(configuration.ChannelSecret))
            {
                throw new ArgumentException($"The {nameof(configuration.ChannelSecret)} cannot be null or whitespace.", nameof(configuration));
            }

            _logger             = logger ?? new EmptyLineBotLogger();
            _client             = client ?? HttpClientFactory.Create(configuration, _logger);
            _signatureValidator = new SignatureValidator(configuration);
        }
Пример #5
0
 public SignatureValidator(ILineConfiguration configuration)
 {
     _configuration = configuration;
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LineBot"/> class.
 /// </summary>
 /// <param name="configuration">The configuration for the client.</param>
 public LineBot(ILineConfiguration configuration)
     : this(configuration, null)
 {
 }
Пример #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LineBot"/> class.
 /// </summary>
 /// <param name="configuration">The configuration for the client.</param>
 /// <param name="logger">The logger.</param>
 public LineBot(ILineConfiguration configuration, ILineBotLogger logger)
     : this(configuration, null, logger)
 {
 }
Пример #8
0
        public SignatureValidator(ILineConfiguration configuration)
        {
            Guard.NotNull(nameof(configuration), configuration);

            _key = Encoding.UTF8.GetBytes(configuration.ChannelSecret);
        }
 public static HttpClient Create(ILineConfiguration configuration)
 {
     return(Clients.GetOrAdd(configuration.ChannelAccessToken, CreateHttpClient));
 }