public TelegramSender(IConfiguration configuration, ILogger <VkApi> logger) { var tokens = configuration.GetSection("Tokens").Get <TokenConfig>(); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); _userId = tokens.TelegramId; _telegram = new TelegramBotClient(tokens.Telegram); _telegram.OnMessage += _telegram_OnMessage; _telegram.OnMessageEdited += _telegram_OnMessageEdited; _telegram.OnCallbackQuery += _telegram_OnCallbackQuery; _telegram.StartReceiving(); _vkNet = new VkApi(logger); _vk = new Vkontakte(0) { AccessToken = new VkLibrary.Core.Auth.AccessToken { Token = tokens.Vk, ExpiresIn = 0 } }; _vkNet.Authorize(new VkNet.Model.ApiAuthParams { AccessToken = tokens.Vk }); var poolServer = _vkNet.Messages.GetLongPollServer(); _vkPool = _vk.StartLongPollClient(poolServer.Server, poolServer.Key, (int)poolServer.Ts).GetAwaiter().GetResult(); _vkPool.AddMessageEvent += _vkPool_AddMessageEvent; _httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"); }
/// <summary> /// Inits a LongPollClient using extended settings. /// Docs: <see href="https://vk.com/dev/using_longpoll">Using LongPoll</see> /// </summary> /// <param name="key">Secret session key.</param> /// <param name="server">Server address to which you need to send the request</param> /// <param name="ts">Number of the last event from which you want to receive data</param> /// <param name="mode">Additional answer options.</param> /// <param name="version"> /// Actual version: 1. For version 0 (default), community IDs will arrive in the format /// group_id + 1000000000 for saving backward compatibility. /// We recommend using the updated version. /// </param> /// <param name="wait"> /// Waiting period (as most proxy servers terminate the connection after 30 seconds, /// we recommend indicating wait = 25). Maximum: 90. /// </param> /// <returns>Running Long Poll Client instance.</returns> public async Task <LongPollClient> StartLongPollClient(string server, string key, int ts, int version = 1, int wait = 25, AnswerFlags mode = AnswerFlags.ReceiveAttachments) { var client = new LongPollClient(this); await client.StartListener(server, key, ts, version, wait, mode); return(client); }