diff --git a/internal/provider/vk/internal/captcha/errors.go b/internal/provider/vk/internal/captcha/errors.go index 3268793..fa29dd2 100644 --- a/internal/provider/vk/internal/captcha/errors.go +++ b/internal/provider/vk/internal/captcha/errors.go @@ -40,16 +40,11 @@ func ParseError(errData map[string]any) *Error { if sidNum, ok2 := errData["captcha_sid"].(float64); ok2 { captchaSid = fmt.Sprintf("%.0f", sidNum) } else { - Log.Warnf("[Captcha] missing captcha_sid in error data") - return nil + Log.Debugf("[Captcha] captcha_sid not present in error data") } } - captchaImg, ok := errData["captcha_img"].(string) - if !ok { - Log.Warnf("[Captcha] missing captcha_img in error data") - return nil - } + captchaImg, _ := errData["captcha_img"].(string) errorMsg, ok := errData["error_msg"].(string) if !ok { diff --git a/internal/provider/vk/internal/vkauth/token_call.go b/internal/provider/vk/internal/vkauth/token_call.go index cd62117..17ab31c 100644 --- a/internal/provider/vk/internal/vkauth/token_call.go +++ b/internal/provider/vk/internal/vkauth/token_call.go @@ -169,6 +169,12 @@ func (c *Client) solveCaptcha( // buildCaptchaRetryData формирует тело POST для следующей попытки captcha. func buildCaptchaRetryData(link, escapedName, token1 string, captchaErr *captcha.Error, successToken, captchaKey string) string { + if captchaErr.CaptchaSid == "" { + return fmt.Sprintf( + "vk_join_link=https://vk.ru/call/join/%s&name=%s&success_token=%s&access_token=%s", + link, escapedName, neturl.QueryEscape(successToken), token1, + ) + } if captchaKey != "" { return fmt.Sprintf( "vk_join_link=https://vk.ru/call/join/%s&name=%s&captcha_key=%s&captcha_sid=%s&access_token=%s",