Example #1
0
        public static void FillWithDefaultData(string name)
        {
            var client             = ViberBotClient.GetInstance();
            var googleSheetsClient = GoogleSheetsClient.GetInstanse();

            if (!googleSheetsClient.IsSheetExist(name))
            {
                return;
            }

            var firstRow = new List <object>();

            firstRow.Add(flatColName);
            firstRow.AddRange(GetMonthNames());
            firstRow.Add(dateColName);
            firstRow.Add(idColName);
            firstRow.Add(whoColName);

            googleSheetsClient.UpdateData(1, 1, firstRow, name);

            var flatNumbersColumn = new List <object>();

            flatNumbersColumn.AddRange(Enumerable.Range(1, client.Settings.FlatsNumber).Select(x => x.ToString()));

            googleSheetsClient.UpdateColData(2, 1, flatNumbersColumn, name);
        }
Example #2
0
        public async Task SetWebhook()
        {
            ViberBotClient      viberBotClient = new ViberBotClient("");
            HttpResponseMessage setWebhook     = await viberBotClient.SetWebhook(new Model.RequestModel.Webhook(new System.Uri("")));

            string result = await setWebhook.Content.ReadAsStringAsync();
        }
Example #3
0
        public async Task <NotificationResult> SendMessageAsync(string receiverId, string message, CancellationToken cancellationToken)
        {
            string errorInfo = null;

            try
            {
                // todo: move to config
                const string ViberBotToken = "47c1eb868867d4e5-aad8db5a22f2dd7e-74c0ab55cba422c1";
                using (var viberClient = new ViberBotClient(ViberBotToken))
                {
                    await viberClient.SendTextMessageAsync(new TextMessage()
                    {
                        Receiver = receiverId,
                        Text     = message,
                    });
                }
            }
            catch (ViberRequestApiException ex)
            {
                errorInfo = $"{ex.Message} | {ex.Method} | {ex.Request} | {ex.Response}";
            }
            catch (Exception ex)
            {
                errorInfo = $"Unhandled exception: {ex.Message}.";
            }

            return(new NotificationResult()
            {
                IsSuccess = errorInfo == null,
                ErrorInfo = errorInfo,
            });
        }
Example #4
0
        public async Task SendMsg()
        {
            ViberBotClient      viberBotClient = new ViberBotClient("");
            HttpResponseMessage setWebhook     = await viberBotClient.SendMessage(new TextMessage("test  log event reloaded 3", "TestProject", ""));

            string result = await setWebhook.Content.ReadAsStringAsync();

            viberBotClient.Dispose();
            TestContext.WriteLine(result);
        }
Example #5
0
        static void SensMessage(Options options)
        {
            ViberBotClient      viberBotClient = new ViberBotClient(Settings.Default.ViberToken);
            string              text           = options.Text;
            string              from           = options.Sender ?? Settings.Default.ViberClientFrom;
            var                 message        = new TextMessage(text, from, Settings.Default.ViberClientTo);
            HttpResponseMessage sendMessage    = viberBotClient.SendMessage(message).Result;
            var                 stringResp     = sendMessage.Content.ReadAsStringAsync().Result;

            Console.WriteLine(stringResp);
        }
Example #6
0
        /// <summary>
        ///     Add services for viber functionality
        /// </summary>
        /// <remarks>
        ///     Use it after all <see cref="IAction{T}" /> registration
        /// </remarks>
        /// <param name="services">
        ///     <see cref="IServiceCollection" />
        /// </param>
        /// <param name="configuration">Instance of <see cref="IConfiguration" /></param>
        /// <param name="isProduction"></param>
        public static async void AddViberClient(this IServiceCollection services, IConfiguration configuration,
                                                bool isProduction)
        {
            var viberBotToken = isProduction
                ? Environment.GetEnvironmentVariable("ViberToken")
                : configuration.GetSection("Tokens").GetSection("Viber").Value;
            var telegramBotClient = new ViberBotClient(viberBotToken);

            services.AddSingleton <IViberBotClient>(telegramBotClient);
            services.AddScoped <IMessageSender <ViberMessage>, ViberMessageSender>();
            services.AddScoped <IHandler <CallbackData>, ViberHandler>();

            await SetWebhook(services, configuration);
        }
Example #7
0
        public static async Task Execute(CallbackData data)
        {
            var receiver = data.Sender.Id;

            if (int.TryParse(((TextMessage)data.Message).Text, out int userValue))
            {
                //учесть данные в поле трекинга
                var flats = Handlers.GoogleSheetsHandler.CheckFlatData(data.Sender.Id);

                if (flats.Any(f => f.ToString() == userValue.ToString()))
                {
                    await client.SendTextMessage(receiver, $"Вы указали - {userValue}. Уже в списке.");
                }
                else if (userValue <= 0 || userValue > ViberBotClient.GetInstance().Settings.FlatsNumber)
                {
                    await client.SendTextMessage(receiver, $"Вы указали - {userValue}. Номер квартиры должен быть от 1 до {ViberBotClient.GetInstance().Settings.FlatsNumber}.");
                }
                else
                {
                    var trackingData = ViberBotTrackingData.Get(data.Message.TrackingData);

                    trackingData.Add(DataField.FlatNumber.ToString(), userValue.ToString());

                    //запросить  подтверждение
                    var message = new KeyboardMessage
                    {
                        Receiver     = receiver,
                        Sender       = client.BotUserData,
                        Text         = $"Вы указали - {userValue}. Данные верны?",
                        TrackingData = ViberBotTrackingData.Build("СonfirmSetFlatNumberAction", "SetFlatNumberAction", trackingData.Data),
                        Keyboard     = KeyboardHandler.YesNoCancel()
                    };

                    await client.SendMessage(receiver, message);
                }
            }
            else
            {
                //неверное значение
                await client.SendTextMessage(receiver, BotError.BadValue);
            }
        }
Example #8
0
        private static void InitViberBotClient(IServiceCollection services, IConfiguration configuration)
        {
            IViberBotClient viberClient = new ViberBotClient(configuration["Token"]);

            services.AddSingleton(viberClient);
        }
Example #9
0
 public async Task <ICollection <EventType> > SetWebhookAsync(string url)
 {
     return(await ViberBotClient.GetInstance().SetWebhookAsync($"{url}/api/Webhook"));
 }
Example #10
0
 public ViberBot(IConfiguration configuration) : base(configuration)
 {
     _cli = new ViberBotClient(configuration.Token);
 }