示例#1
0
        private void Client_OnFail(object sender, int e)
        {
            LoggerHolder.Log.Error($"VkBotApiProvider_Client_OnFail with {e}");

            var settings = _vkApi.Groups.GetLongPollServer(_settings.GroupId).Result;
            var client   = _vkApi.StartBotLongPollClient
                           (
                settings.Server,
                settings.Key,
                Convert.ToInt32(settings.Ts)
                           ).Result;

            _client = client;
            _client.OnMessageNew            += Client_OnMessageNew;
            _client.LongPollFailureReceived += Client_OnFail;
            _client.ResponseReceived        += Client_OnResponse;
        }
示例#2
0
        public Result Initialize()
        {
            var accessToken = AccessToken.FromString(_settings.Key);

            _vkApi = new Vkontakte(_settings.AppId, new VkLibraryLogger(_vkFileLogger), _settings.AppSecret)
            {
                AccessToken = accessToken
            };
            Task <GroupsLongPollServer> getSettingsTask = _vkApi.Groups.GetLongPollServer(_settings.GroupId);

            getSettingsTask.WaitSafe();

            if (getSettingsTask.IsFaulted)
            {
                return(new Result(false, "Get long poll server failed").WithException(getSettingsTask.Exception));
            }

            var settings = getSettingsTask.Result;

            Task <BotLongPollClient> clientTask = _vkApi.StartBotLongPollClient
                                                  (
                settings.Server,
                settings.Key,
                Convert.ToInt32(settings.Ts)
                                                  );

            clientTask.WaitSafe();

            if (clientTask.IsFaulted)
            {
                return(new Result(false, "Auth is failed").WithException(clientTask.Exception));
            }

            _client = clientTask.Result;
            _client.OnMessageNew            += Client_OnMessageNew;
            _client.LongPollFailureReceived += Client_OnFail;
            _client.ResponseReceived        += Client_OnResponse;

            return(new Result(true, "Auth successfully"));
        }