Error timeout was reached vk api

Ответили на вопрос 1 человек. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

Доброго времени суток! Произошла такая проблема: выдаёт ошибку

Timeout was reached

при запросе подтверждения ссылки в callback api. Код написан на PHP. Что делать в этой ситуации?

Весь код:

//Строка для подтверждения адреса сервера из настроек Callback API
$confirmationToken = '12345678';

//Ключ доступа сообщества
$token = '12345678901234567890123456789012345678901234567890';

// Secret key
$secretKey = '1234567890123456';

//Получаем и декодируем уведомление
$data = json_decode(file_get_contents('php://input'));

// проверяем secretKey
if(strcmp($data->secret, $secretKey) !== 0 && strcmp($data->type, 'confirmation') !== 0)
    return;

//Проверяем, что находится в поле "type"
switch ($data->type) {
    //Если это уведомление для подтверждения адреса сервера...
    case 'confirmation':
        //...отправляем строку для подтверждения адреса
        echo $confirmationToken;
        break;

    //Если это уведомление о новом сообщении...
    case 'message_new':
        //...получаем id его автора
        $userId = $data->object->user_id;
        //затем с помощью users.get получаем данные об авторе
        $userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.73"));

        //и извлекаем из ответа его имя
        $user_name = $userInfo->response[0]->first_name;

        //С помощью messages.send и токена сообщества отправляем ответное сообщение
        $request_params = array(
            'message' => "{$user_name}, ваше сообщение зарегистрировано!<br>".
                            "Мы постараемся ответить в ближайшее время.",
            'user_id' => $userId,
            'access_token' => $token,
            'v' => '5.73'
        );

        $get_params = http_build_query($request_params);

        file_get_contents('https://api.vk.com/method/messages.send?' . $get_params);

        //Возвращаем "ok" серверу Callback API
        echo('ok');

        break;

    // Если это уведомление о вступлении в группу
    case 'group_join':
        //...получаем id нового участника
        $userId = $data->object->user_id;

        //затем с помощью users.get получаем данные об авторе
        $userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.73"));

        //и извлекаем из ответа его имя
        $user_name = $userInfo->response[0]->first_name;

        //С помощью messages.send и токена сообщества отправляем ответное сообщение
        $request_params = array(
            'message' => "Добро пожаловать в наше сообщество, {$user_name}!<br>" .
                            "Если у Вас возникнут вопросы, то вы всегда можете обратиться к администраторам сообщества.<br>" .
                            "Их контакты можно найти в соответсвующем разделе группы.<br>" .
                            "Хорошего дня!",
            'user_id' => $userId,
            'access_token' => $token,
            'v' => '5.73'
        );

        $get_params = http_build_query($request_params);

        file_get_contents('https://api.vk.com/method/messages.send?' . $get_params);

        //Возвращаем "ok" серверу Callback API
        echo('ok');

        break;

    // Если это уведомление о выходе из группы
    case 'group_leave':
        //...получаем id ушедшего участника
        $userId = $data->object->user_id;

        //затем с помощью users.get получаем данные об авторе
        $userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.73"));

        //и извлекаем из ответа его имя
        $user_name = $userInfo->response[0]->first_name;

        //С помощью messages.send и токена сообщества отправляем ответное сообщение
        $request_params = array(
            'message' => "{$user_name}, нам очень жаль прощаться с вами <br>" .
                            "Мы всегда будем ждать Вас в нашем уютном клубе.<br>" .
                            "Если возникли вопросы - свяжитесь с администратором сообщества<br>" ,
            'user_id' => $userId,
            'access_token' => $token,
            'v' => '5.73'
        );

        $get_params = http_build_query($request_params);

        file_get_contents('https://api.vk.com/method/messages.send?' . $get_params);

        //Возвращаем "ok" серверу Callback API
        echo('ok');

        break;
}

Начну с того, что у меня довольно часто возникали синтаксические ошибки в коде php из-за чего, при их исправлении, vk api начинал по несколько раз выполнять скрипт. Это очень мешало, поэтому я сделал промежуточный скрипт. Он принимает callback-вызов на себя, пересылает post-запрос на мой основной php-файл и отвечает ‘ok’, чтобы вк больше не ругался. Я точно не уверен, но казалось, что всё работало прекрасно. У меня чат-менеджер, выполняющий базовые команды по типу /kick /ban /info и т.п. Среди них есть команда, которая проходится по списку пользователей беседы и выводит в чат тех, у кого дата регистрации меньше определённого значения. Вот, собственно его код:

// ответить
$repl = $data->object->reply_message;
if ($repl) {
    array_push($users, $repl->from_id);
}

// переслать
$repl = $data->object->fwd_messages;
if ($repl) {
    foreach ($repl as $user) {
        array_push($users, $user->from_id);
    }
}
switch($cmd) {
    case '/regdate':
    case '+regdate':
        if (empty($users)) { break; }
        foreach ($users as $id) {
            $numid = getUserInfo(substr($id, 1), 'id');
            $str = file_get_contents("http://vk.com/foaf.php?id=$numid");
            $res = preg_match('/<ya:created dc:date=".{25}"/>/', $str, $found);
            if ($res !== 0) {
                preg_match('/".{25}/', $found[0], $found);
                $regdate = substr($found[0], 1);
                // разница
                $interval = date_diff((new DateTime($regdate)), (new DateTime(date('c'))));
                $years = $interval->y;
                $month = $interval->m;
                $day = $interval->d;
                date_default_timezone_set('UTC');
                $date = (new DateTime($regdate))->getTimestamp();
                $startTimeStamp = (new DateTime())->setTimestamp($date);
                $detail = $startTimeStamp->format('m.d.Y в H:i');
                send("@id$numid (Пользователь) зарегистрировался: $detailnС момента регистрации прошло " . convDays($years, $month, $day));
            } else {
                send("Невозможно получить информацию. Страница пользователя заблокирована.");
            }
        }
        $executed = true;
        break;
}

И тут у меня возникает проблема. ВК говорит: Error: Timeout was reached (ну и 5 повторов), хотя ‘ok’ ему отвечают при пересылке. Код выполняется 5 раз (что понятно). Я грешу на то, что код выполняется долго и из-за этого появляется ошибка. Пересылаю запрос я при помощи curl и скорее всего после отправки скрипт ждёт завершения работы того скрипта, хотя это под вопросом. Кстати, вот сама переадресация:

if (!isset($_REQUEST)) { 
    return; 
}

$content = file_get_contents('php://input');
$data = json_decode($content);
include_once('../conf.php');

switch ($data->type) {
    case 'confirmation':
        echo $conf['callback_token'];
        break;
    default:
        $url = "http://example.com/index.php";
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);

        echo "ok";
        break;
}

Напоследок хочу добавить, что в основном php-файле есть и другие команды, такие как /kick, /warn, отправка сообщений в беседу, получение даты регистрации конкретного человека и всё работает без нареканий, то есть технически моя конструкция работоспособна. Я не знаю, как мне быть с этим, поэтому нуждаюсь в советах старших

{ «$schema»: «http://json-schema.org/draft-07/schema#«, «definitions»: { «subcodes»: { «too_many_communities»: { «subcode»: 1 }, «user_reached_linked_accounts_limit»: { «subcode»: 1000 }, «service_uuid_link_with_another_user»: { «subcode»: 1001 } } }, «errors»: { «api_error_unknown»: { «code»: 1, «description»: «Unknown error occurred«, «global»: true }, «api_error_disabled»: { «code»: 2, «description»: «Application is disabled. Enable your application or use test mode«, «global»: true }, «api_error_method»: { «code»: 3, «description»: «Unknown method passed«, «global»: true }, «api_error_signature»: { «code»: 4, «description»: «Incorrect signature«, «global»: true }, «api_error_auth»: { «code»: 5, «description»: «User authorization failed«, «global»: true }, «api_error_too_many»: { «code»: 6, «description»: «Too many requests per second«, «global»: true }, «api_error_permission»: { «code»: 7, «description»: «Permission to perform this action is denied«, «global»: true }, «api_error_request»: { «code»: 8, «description»: «Invalid request«, «global»: true, «subcodes»: [ { «$ref»: «#/definitions/subcodes/user_reached_linked_accounts_limit« }, { «$ref»: «#/definitions/subcodes/service_uuid_link_with_another_user« } ] }, «api_error_flood»: { «code»: 9, «description»: «Flood control«, «global»: true }, «api_error_server»: { «code»: 10, «description»: «Internal server error«, «global»: true }, «api_error_enabled_in_test»: { «code»: 11, «description»: «In test mode application should be disabled or user should be authorized«, «global»: true }, «api_error_compile»: { «code»: 12, «description»: «Unable to compile code« }, «api_error_runtime»: { «code»: 13, «description»: «Runtime error occurred during code invocation« }, «api_error_captcha»: { «code»: 14, «description»: «Captcha needed«, «global»: true }, «api_error_access»: { «code»: 15, «description»: «Access denied«, «global»: true }, «api_error_auth_https»: { «code»: 16, «description»: «HTTP authorization failed«, «global»: true }, «api_error_auth_validation»: { «code»: 17, «description»: «Validation required«, «global»: true }, «api_error_user_deleted»: { «code»: 18, «description»: «User was deleted or banned«, «global»: true }, «api_error_blocked»: { «code»: 19, «description»: «Content blocked« }, «api_error_method_permission»: { «code»: 20, «description»: «Permission to perform this action is denied for non-standalone applications«, «global»: true }, «api_error_method_ads»: { «code»: 21, «description»: «Permission to perform this action is allowed only for standalone and OpenAPI applications«, «global»: true }, «api_error_upload»: { «code»: 22, «description»: «Upload error« }, «api_error_method_disabled»: { «code»: 23, «description»: «This method was disabled«, «global»: true }, «api_error_need_confirmation»: { «code»: 24, «description»: «Confirmation required«, «global»: true }, «api_error_need_token_confirmation»: { «code»: 25, «description»: «Token confirmation required«, «global»: true }, «api_error_group_auth»: { «code»: 27, «description»: «Group authorization failed«, «global»: true }, «api_error_app_auth»: { «code»: 28, «description»: «Application authorization failed«, «global»: true }, «api_error_rate_limit»: { «code»: 29, «description»: «Rate limit reached«, «global»: true }, «api_error_private_profile»: { «code»: 30, «description»: «This profile is private«, «global»: true }, «api_error_not_implemented_yet»: { «code»: 33, «description»: «Not implemented yet«, «global»: true }, «api_error_client_version_deprecated»: { «code»: 34, «description»: «Client version deprecated«, «global»: true }, «api_error_client_update_needed»: { «code»: 35, «description»: «Client update needed« }, «api_error_timeout»: { «code»: 36, «description»: «Method execution was interrupted due to timeout« }, «api_error_user_banned»: { «code»: 37, «description»: «User was banned«, «global»: true }, «api_error_unknown_application»: { «code»: 38, «description»: «Unknown application«, «global»: true }, «api_error_unknown_user»: { «code»: 39, «description»: «Unknown user«, «global»: true }, «api_error_unknown_group»: { «code»: 40, «description»: «Unknown group«, «global»: true }, «api_error_additional_signup_required»: { «code»: 41, «description»: «Additional signup required«, «global»: true }, «api_error_ip_is_not_allowed»: { «code»: 42, «description»: «IP is not allowed«, «global»: true }, «api_error_param»: { «code»: 100, «description»: «One of the parameters specified was missing or invalid«, «global»: true }, «api_error_param_api_id»: { «code»: 101, «description»: «Invalid application API ID«, «global»: true }, «api_error_limits»: { «code»: 103, «description»: «Out of limits«, «subcodes»: [ { «$ref»: «#/definitions/subcodes/too_many_communities« } ] }, «api_error_not_found»: { «code»: 104, «description»: «Not found« }, «api_error_save_file»: { «code»: 105, «description»: «Couldn’t save file« }, «api_error_action_failed»: { «code»: 106, «description»: «Unable to process action« }, «api_error_param_user_id»: { «code»: 113, «description»: «Invalid user id«, «global»: true }, «api_error_param_album_id»: { «code»: 114, «description»: «Invalid album id« }, «api_error_param_server»: { «code»: 118, «description»: «Invalid server« }, «api_error_param_title»: { «code»: 119, «description»: «Invalid title« }, «api_error_param_hash»: { «code»: 121, «description»: «Invalid hash« }, «api_error_param_photos»: { «code»: 122, «description»: «Invalid photos« }, «api_error_param_group_id»: { «code»: 125, «description»: «Invalid group id« }, «api_error_param_photo»: { «code»: 129, «description»: «Invalid photo« }, «api_error_param_page_id»: { «code»: 140, «description»: «Page not found« }, «api_error_access_page»: { «code»: 141, «description»: «Access to page denied« }, «api_error_mobile_not_activated»: { «code»: 146, «description»: «The mobile number of the user is unknown« }, «api_error_insufficient_funds»: { «code»: 147, «description»: «Application has insufficient funds« }, «api_error_param_timestamp»: { «code»: 150, «description»: «Invalid timestamp«, «global»: true }, «api_error_friends_list_id»: { «code»: 171, «description»: «Invalid list id« }, «api_error_friends_list_limit»: { «code»: 173, «description»: «Reached the maximum number of lists« }, «api_error_friends_add_yourself»: { «code»: 174, «description»: «Cannot add user himself as friend« }, «api_error_friends_add_in_enemy»: { «code»: 175, «description»: «Cannot add this user to friends as they have put you on their blacklist« }, «api_error_friends_add_enemy»: { «code»: 176, «description»: «Cannot add this user to friends as you put him on blacklist« }, «api_error_friends_add_not_found»: { «code»: 177, «description»: «Cannot add this user to friends as user not found« }, «api_error_param_note_id»: { «code»: 180, «description»: «Note not found« }, «api_error_access_note»: { «code»: 181, «description»: «Access to note denied« }, «api_error_access_note_comment»: { «code»: 182, «description»: «You can’t comment this note« }, «api_error_access_comment»: { «code»: 183, «description»: «Access to comment denied« }, «api_error_access_album»: { «code»: 200, «description»: «Access denied«, «global»: true }, «api_error_access_audio»: { «code»: 201, «description»: «Access denied«, «global»: true }, «api_error_access_group»: { «code»: 203, «description»: «Access to group denied«, «global»: true }, «api_error_access_video»: { «code»: 204, «description»: «Access denied« }, «api_error_access_market»: { «code»: 205, «description»: «Access denied« }, «api_error_wall_access_post»: { «code»: 210, «description»: «Access to wall’s post denied« }, «api_error_wall_access_comment»: { «code»: 211, «description»: «Access to wall’s comment denied« }, «api_error_wall_access_replies»: { «code»: 212, «description»: «Access to post comments denied« }, «api_error_wall_access_add_reply»: { «code»: 213, «description»: «Access to status replies denied« }, «api_error_wall_add_post»: { «code»: 214, «description»: «Access to adding post denied« }, «api_error_wall_ads_published»: { «code»: 219, «description»: «Advertisement post was recently added« }, «api_error_wall_too_many_recipients»: { «code»: 220, «description»: «Too many recipients« }, «api_error_status_no_audio»: { «code»: 221, «description»: «User disabled track name broadcast« }, «api_error_wall_links_forbidden»: { «code»: 222, «description»: «Hyperlinks are forbidden« }, «api_error_wall_reply_owner_flood»: { «code»: 223, «description»: «Too many replies« }, «api_error_wall_ads_post_limit_reached»: { «code»: 224, «description»: «Too many ads posts« }, «api_error_wall_donut»: { «code»: 225, «description»: «Donut is disabled« }, «api_error_likes_reaction_can_not_be_applied»: { «code»: 232, «description»: «Reaction can not be applied to the object« }, «api_error_polls_access»: { «code»: 250, «description»: «Access to poll denied« }, «api_error_polls_poll_id»: { «code»: 251, «description»: «Invalid poll id« }, «api_error_polls_answer_id»: { «code»: 252, «description»: «Invalid answer id« }, «api_error_polls_access_without_vote»: { «code»: 253, «description»: «Access denied, please vote first« }, «api_error_access_groups»: { «code»: 260, «description»: «Access to the groups list is denied due to the user’s privacy settings« }, «api_error_album_full»: { «code»: 300, «description»: «This album is full«, «global»: true }, «api_error_albums_limit»: { «code»: 302, «description»: «Albums number limit is reached« }, «api_error_votes_permission»: { «code»: 500, «description»: «Permission denied. You must enable votes processing in application settings«, «global»: true }, «api_error_ads_permission»: { «code»: 600, «description»: «Permission denied. You have no access to operations specified with given object(s)«, «global»: true }, «api_error_weighted_flood»: { «code»: 601, «description»: «Permission denied. You have requested too many actions this day. Try later.« }, «api_error_ads_partial_success»: { «code»: 602, «description»: «Some part of the request has not been completed« }, «api_error_ads_specific»: { «code»: 603, «description»: «Some ads error occurs«, «global»: true }, «api_error_ads_object_deleted»: { «code»: 629, «description»: «Object deleted« }, «api_error_group_change_creator»: { «code»: 700, «description»: «Cannot edit creator role« }, «api_error_group_not_in_club»: { «code»: 701, «description»: «User should be in club« }, «api_error_group_too_many_officers»: { «code»: 702, «description»: «Too many officers in club« }, «api_error_group_need_2fa»: { «code»: 703, «description»: «You need to enable 2FA for this action« }, «api_error_group_host_need_2fa»: { «code»: 704, «description»: «User needs to enable 2FA for this action« }, «api_error_group_too_many_addresses»: { «code»: 706, «description»: «Too many addresses in club« }, «api_error_group_app_is_not_installed_in_community»: { «code»: 711, «description»: «Application is not installed in community« }, «api_error_group_invite_links_not_valid»: { «code»: 714, «description»: «Invite link is invalid — expired, deleted or not exists« }, «api_error_video_already_added»: { «code»: 800, «description»: «This video is already added« }, «api_error_video_comments_closed»: { «code»: 801, «description»: «Comments for this video are closed« }, «api_error_messages_user_blocked»: { «code»: 900, «description»: «Can’t send messages for users from blacklist« }, «api_error_messages_deny_send»: { «code»: 901, «description»: «Can’t send messages for users without permission« }, «api_error_messages_privacy»: { «code»: 902, «description»: «Can’t send messages to this user due to their privacy settings« }, «api_error_messages_too_old_pts»: { «code»: 907, «description»: «Value of ts or pts is too old« }, «api_error_messages_too_new_pts»: { «code»: 908, «description»: «Value of ts or pts is too new« }, «api_error_messages_edit_expired»: { «code»: 909, «description»: «Can’t edit this message, because it’s too old« }, «api_error_messages_too_big»: { «code»: 910, «description»: «Can’t sent this message, because it’s too big« }, «api_error_messages_keyboard_invalid»: { «code»: 911, «description»: «Keyboard format is invalid« }, «api_error_messages_chat_bot_feature»: { «code»: 912, «description»: «This is a chat bot feature, change this status in settings« }, «api_error_messages_too_long_forwards»: { «code»: 913, «description»: «Too many forwarded messages« }, «api_error_messages_too_long_message»: { «code»: 914, «description»: «Message is too long« }, «api_error_messages_chat_user_no_access»: { «code»: 917, «description»: «You don’t have access to this chat« }, «api_error_messages_cant_see_invite_link»: { «code»: 919, «description»: «You can’t see invite link for this chat« }, «api_error_messages_edit_kind_disallowed»: { «code»: 920, «description»: «Can’t edit this kind of message« }, «api_error_messages_cant_fwd»: { «code»: 921, «description»: «Can’t forward these messages« }, «api_error_messages_cant_delete_for_all»: { «code»: 924, «description»: «Can’t delete this message for everybody« }, «api_error_messages_chat_not_admin»: { «code»: 925, «description»: «You are not admin of this chat« }, «api_error_messages_chat_not_exist»: { «code»: 927, «description»: «Chat does not exist« }, «api_error_messages_cant_change_invite_link»: { «code»: 931, «description»: «You can’t change invite link for this chat« }, «api_error_messages_group_peer_access»: { «code»: 932, «description»: «Your community can’t interact with this peer« }, «api_error_messages_chat_user_not_in_chat»: { «code»: 935, «description»: «User not found in chat« }, «api_error_messages_contact_not_found»: { «code»: 936, «description»: «Contact not found« }, «api_error_messages_message_request_already_sent»: { «code»: 939, «description»: «Message request already sent« }, «api_error_messages_too_many_posts»: { «code»: 940, «description»: «Too many posts in messages« }, «api_error_messages_cant_pin_one_time_story»: { «code»: 942, «description»: «Cannot pin one-time story« }, «api_error_messages_intent_cant_use»: { «code»: 943, «description»: «Cannot use this intent« }, «api_error_messages_intent_limit_overflow»: { «code»: 944, «description»: «Limits overflow for this intent« }, «api_error_messages_chat_disabled»: { «code»: 945, «description»: «Chat was disabled« }, «api_error_messages_chat_unsupported»: { «code»: 946, «description»: «Chat not supported« }, «api_error_messages_member_access_to_group_denied»: { «code»: 947, «description»: «Can’t add user to chat, because user has no access to group« }, «api_error_messages_cant_edit_pinned_yet»: { «code»: 949, «description»: «Can’t edit pinned message yet« }, «api_error_messages_peer_blocked_reason_by_time»: { «code»: 950, «description»: «Can’t send message, reply timed out« }, «api_error_messages_user_not_don»: { «code»: 962, «description»: «You can’t access donut chat without subscription« }, «api_error_messages_message_cannot_be_forwarded»: { «code»: 969, «description»: «Message cannot be forwarded« }, «api_error_messages_cant_pin_expiring_message»: { «code»: 970, «description»: «Cannot pin an expiring message« }, «api_error_auth_flood_error»: { «code»: 1105, «description»: «Too many auth attempts, try again later« }, «api_error_auth_anonymous_token_has_expired»: { «code»: 1114, «description»: «Anonymous token has expired«, «global»: true }, «api_error_auth_anonymous_token_is_invalid»: { «code»: 1116, «description»: «Anonymous token is invalid«, «global»: true }, «api_error_param_doc_id»: { «code»: 1150, «description»: «Invalid document id« }, «api_error_param_doc_delete_access»: { «code»: 1151, «description»: «Access to document deleting is denied« }, «api_error_param_doc_title»: { «code»: 1152, «description»: «Invalid document title« }, «api_error_param_doc_access»: { «code»: 1153, «description»: «Access to document is denied« }, «api_error_photo_changed»: { «code»: 1160, «description»: «Original photo was changed« }, «api_error_too_many_lists»: { «code»: 1170, «description»: «Too many feed lists« }, «api_error_apps_already_unlocked»: { «code»: 1251, «description»: «This achievement is already unlocked« }, «api_error_apps_subscription_not_found»: { «code»: 1256, «description»: «Subscription not found« }, «api_error_apps_subscription_invalid_status»: { «code»: 1257, «description»: «Subscription is in invalid status« }, «api_error_invalid_address»: { «code»: 1260, «description»: «Invalid screen name« }, «api_error_communities_catalog_disabled»: { «code»: 1310, «description»: «Catalog is not available for this user« }, «api_error_communities_categories_disabled»: { «code»: 1311, «description»: «Catalog categories are not available for this user« }, «api_error_market_restore_too_late»: { «code»: 1400, «description»: «Too late for restore« }, «api_error_market_comments_closed»: { «code»: 1401, «description»: «Comments for this market are closed« }, «api_error_market_album_not_found»: { «code»: 1402, «description»: «Album not found« }, «api_error_market_item_not_found»: { «code»: 1403, «description»: «Item not found« }, «api_error_market_item_already_added»: { «code»: 1404, «description»: «Item already added to album« }, «api_error_market_too_many_items»: { «code»: 1405, «description»: «Too many items« }, «api_error_market_too_many_items_in_album»: { «code»: 1406, «description»: «Too many items in album« }, «api_error_market_too_many_albums»: { «code»: 1407, «description»: «Too many albums« }, «api_error_market_item_has_bad_links»: { «code»: 1408, «description»: «Item has bad links in description« }, «api_error_market_extended_not_enabled»: { «code»: 1409, «description»: «Extended market not enabled« }, «api_error_market_grouping_items_with_different_properties»: { «code»: 1412, «description»: «Grouping items with different properties« }, «api_error_market_grouping_already_has_such_variant»: { «code»: 1413, «description»: «Grouping already has such variant« }, «api_error_market_variant_not_found»: { «code»: 1416, «description»: «Variant not found« }, «api_error_market_property_not_found»: { «code»: 1417, «description»: «Property not found« }, «api_error_market_grouping_must_contain_more_than_one_item»: { «code»: 1425, «description»: «Grouping must have two or more items« }, «api_error_market_grouping_items_must_have_distinct_properties»: { «code»: 1426, «description»: «Item must have distinct properties« }, «api_error_market_orders_no_cart_items»: { «code»: 1427, «description»: «Cart is empty« }, «api_error_market_invalid_dimensions»: { «code»: 1429, «description»: «Specify width, length, height and weight all together« }, «api_error_market_cant_change_vkpay_status»: { «code»: 1430, «description»: «VK Pay status can not be changed« }, «api_error_market_shop_already_enabled»: { «code»: 1431, «description»: «Market was already enabled in this group« }, «api_error_market_shop_already_disabled»: { «code»: 1432, «description»: «Market was already disabled in this group« }, «api_error_market_photos_crop_invalid_format»: { «code»: 1433, «description»: «Invalid image crop format« }, «api_error_market_photos_crop_overflow»: { «code»: 1434, «description»: «Crop bottom right corner is outside of the image« }, «api_error_market_photos_crop_size_too_low»: { «code»: 1435, «description»: «Crop size is less than the minimum« }, «api_error_market_not_enabled»: { «code»: 1438, «description»: «Market not enabled« }, «api_error_market_album_main_hidden»: { «code»: 1446, «description»: «Main album can not be hidden« }, «api_error_story_expired»: { «code»: 1600, «description»: «Story has already expired« }, «api_error_story_incorrect_reply_privacy»: { «code»: 1602, «description»: «Incorrect reply privacy« }, «api_error_pretty_cards_card_not_found»: { «code»: 1900, «description»: «Card not found« }, «api_error_pretty_cards_too_many_cards»: { «code»: 1901, «description»: «Too many cards« }, «api_error_pretty_cards_card_is_connected_to_post»: { «code»: 1902, «description»: «Card is connected to post« }, «api_error_callback_api_servers_limit»: { «code»: 2000, «description»: «Servers number limit is reached« }, «api_error_stickers_not_purchased»: { «code»: 2100, «description»: «Stickers are not purchased« }, «api_error_stickers_too_many_favorites»: { «code»: 2101, «description»: «Too many favorite stickers« }, «api_error_stickers_not_favorite»: { «code»: 2102, «description»: «Stickers are not favorite« }, «api_error_wall_check_link_cant_determine_source»: { «code»: 3102, «description»: «Specified link is incorrect (can’t find source)« }, «api_error_recaptcha»: { «code»: 3300, «description»: «Recaptcha needed«, «global»: true }, «api_error_phone_validation_need»: { «code»: 3301, «description»: «Phone validation needed«, «global»: true }, «api_error_password_validation_need»: { «code»: 3302, «description»: «Password validation needed«, «global»: true }, «api_error_otp_validation_need»: { «code»: 3303, «description»: «Otp app validation needed«, «global»: true }, «api_error_email_confirmation_need»: { «code»: 3304, «description»: «Email confirmation needed«, «global»: true }, «api_error_assert_votes»: { «code»: 3305, «description»: «Assert votes«, «global»: true }, «api_error_token_extension_required»: { «code»: 3609, «description»: «Token extension required«, «global»: true }, «api_error_user_deactivated»: { «code»: 3610, «description»: «User is deactivated«, «global»: true }, «api_error_user_service_deactivated»: { «code»: 3611, «description»: «Service is deactivated for user«, «global»: true }, «api_error_fave_aliexpress_tag»: { «code»: 3800, «description»: «Can’t set AliExpress tag to this type of object« } } }

Перейти к содержанию

VK API Error Code – Коды ошибок Вконтакте

Список всех возвращаемых кодов ошибок API в ВК

Код ошибки Описание
1 Произошла неизвестная ошибка.
Попробуйте повторить запрос позднее.
2 Приложение выключено. 
Нужно включить приложение в настройках https://vk.com/editapp?id={Ваш API_ID} или воспользоваться тестовым режимом (test_mode=1)
3 Передан неизвестный метод.
Нужно проверить указано ли название вызываемого метода: https://vk.com/dev/methods.
4 Неверная подпись. 
5 Авторизация пользователя не удалась.
Следует убедиться, что используется верная схема авторизации.
6 Слишком много запросов в секунду.
Нужно задать больший интервал между запросами или использовать метод execute. Узнать подробнее об ограничениях на частоту вызовов можно тут: https://vk.com/dev/api_requests.
7 Нет прав для выполнения этого действия.
Следует проверить, получены ли необходимые права доступа при авторизации. Сделать это можно с помощью метода account.getAppPermissions.
8 Неверный запрос.
Нужно проверить синтаксис запроса и список параметров, которые используются.
9 Слишком много однотипных действий.
Нужно уменьшить число однотипных обращений. Для оптимизации работы можно использовать execute или JSONP.
10 Произошла внутренняя ошибка сервера.
Попробуйте повторить запрос позже.
11 В тестовом режиме приложение должно быть выключено или пользователь должен быть залогинен.
Следует выключить приложение в настройках https://vk.com/editapp?id={Ваш API_ID}
14 Требуется ввод кода с картинки (Captcha).
Процесс обработки этой ошибки подробно описан на странице.
15 Доступ запрещён.
Следует убедиться, что используются верные идентификаторы, а также, что доступ к запрашиваемому контенту для текущего пользователя есть в полной версии сайта.
16 Требуется выполнение запросов по протоколу HTTPS, т.к. пользователь включил настройку, требующую работу через безопасное соединение.
Во избежание возникновения этой ошибки, в Standalone-приложении можно предварительно проверять состояние этой настройки у пользователя методом account.getInfo.
17 Требуется валидация пользователя.
Действие требует подтверждения — нужно перенаправить пользователя на служебную страницу для валидации.
18 Страница удалена или заблокирована.
Страница пользователя была удалена или заблокирована
20 Данное действие запрещено для не Standalone приложений.
Если ошибка появляется несмотря на то, что приложение имеет тип Standalone, следует убедиться, что при авторизации было использовано redirect_uri=https://oauth.vk.com/blank.html. Подробнее на странице: https://vk.com/dev/auth_mobile.
21 Данное действие разрешено только для Standalone и Open API приложений.
23 Метод был выключен.
Ознакомиться со всеми актуальными методами ВК API, доступными в настоящий момент можно тут: https://vk.com/dev/methods.
24 Требуется подтверждение со стороны пользователя.
27 Ключ доступа сообщества недействителен.
28 Ключ доступа приложения недействителен.
29 Достигнут количественный лимит на вызов метода.
Узнать подробнее об ограничениях на количество вызовов можно тут:
https://vk.com/dev/data_limits
30 Профиль является приватным.
Информация, которая запрашивается о профиле, недоступна с используемым ключом доступа
33 Еще не реализовано.
100 Один из необходимых параметров был не передан или неверен.
Следует проверить список требуемых параметров и их формат на странице с описанием метода.
101 Неверный API ID приложения.
Нужно найти приложение в списке администрируемых на странице, и указать в запросе правильный API_ID (идентификатор приложения).
113 Неверный идентификатор пользователя.
Следует убедиться, что используется правильный идентификатор. Получить ID по короткому имени можно методом utils.resolveScreenName.
150 Неверный timestamp (метка времени).
Актуальное значение можно получить методом utils.getServerTime.
200 Доступ к альбому запрещён.
Нужно убедиться, что используются верные идентификаторы (для пользователей owner_id — положительный, для сообществ — отрицательный), и доступ к контенту, которые запрашивается, для текущего пользователя есть в полной версии сайта.
201 Доступ к аудио запрещён.
Нужно убедиться, что используются верные идентификаторы (для пользователей owner_id — положительный, для сообществ — отрицательный), и доступ к контенту, которые запрашивается, для текущего пользователя есть в полной версии сайта.
203 Доступ к группе запрещён.
Нужно убедиться, что текущий пользователь является участником или руководителем группы (для закрытых и частных групп и встреч).
300 Альбом переполнен.
Перед продолжением работы нужно удалить лишние объекты из альбома или использовать другой альбом.
500 Действие запрещено. Вы должны включить переводы голосов в настройках приложения.
Следует проверить настройки приложения: https://vk.com/editapp?id={Ваш API_ID}&section=payments
600 Нет прав на выполнение данных операций с рекламным кабинетом.
603 Произошла ошибка при работе с рекламным кабинетом.
3300 Требуется рекапча.
3301 Требуется подтверждение телефона.
3302 Требуется подтверждение пароля.
3303 Требуется проверка приложения Otp.
3304 Требуется подтверждение по электронной почте.
3305 Требуется утвердить голоса.

VK API Error Code

Описание:
Превышено количество запросов в сутки! Некоторые методы ВК имеют ограничение на количество запросов в сутки с одного аккаунта Решение проблемы*:
Смените аккаунт! Так же, для дальнейшего избежания этой ошибки рекомендуется увеличить интервал!

* Попробуйте проверить всю информацию при рассылке: тексты, подключенного пользователя, прикрепления, списки рассылки и прочее. Все эти факторы могут влиять на выдачу ошибок сайтом ВК и, соответственно, на корректную работоспособность программы.

Помните, что эти ошибки выдает программе сам сайт ВКонтакте и разработчик программы может не знать точную причину возникновеня ошибки, а вариант, предложеный выше может не сработать по разным причинам. В случае возникновения такой ошибки, Вы можете поискать варианты ее решения в интернете. Вы можете использовать следующий запрос в поисковой системе «Ошибка ВКонтакте № Rate limit reached как исправить» или другие подобные запросы на Ваш выбор.

Вариант(ы) решения этой проблемы относятся только к программе VK-Spam-Master. Вы можете скачать программу VK-Spam-Master чтобы получить возможность рассылать сообщения с минимальными потерями и подобными ошибками, и с максимальной поддержкой.

Выше предоставлен список возможных ошибок которые могут возникать у пользователей программы VK-Spam-Master во время использования функционала программы.

Результатом появления таких ошибок может быть все что угодно. К примеру, некоторые ошибки возникают из-за невнимательности пользователей. Как пример можно привести то, что пользователь не выбрал аккаунт ВКонтакте, неправильно ввел список групп для рассылки, не указал текст рассылки, и прочее.

Так же, есть ошибки, появление которых зависит по большей мере от самого сайта ВКонтакте. Например, ошибка, которая требует ввести капчу, ошибки, которые означают достижение пользователем лимитов в рассылке, или ошибка о запрете определенного действия.

На страницах этих ошибок (предоставленых выше) описаны способы их возникновения и возможные варианты их решения, если таковые имеются

Шпион VK за диалогами, лайками и комментариями, друзьями и подписчиками, стеной и онлайном любого пользователя.

Не работает шпион, пишет про ошибку #29, что делать?

Некоторые пользователи иногда сталкиваются с ошибкой #29, которую выдает им шпион. Давайте разберемся что это за ошибка, когда появляется и как от нее избавиться.

Когда ошибка появляется?

Ни для кого не секрет, что шпион использует данные с vk.com для формирования статистики, которую вы, собственно, и смотрите. К сожалению, VK.COM ограничивает колличество запросов со стороны пользователя и шпиона к своим методам. Если вы активно пользовались всеми шпионами, или добавили ОЧЕНЬ много целей, или забыли закрыть вкладку с включенным шпионом за диалогами — у вас может появится подобная ошибка.

В чем смысл ошибки?

Данная ошибка временно запрещает конкретно ВАМ (пользователю) получать информацию с сайта ВК, а значит перестают работать почти все шпионы, которые от этих данных зависимы.

Как избавиться?

Данная ошибка работает как временный бан. Обычно ВК запрещает вызывать определенные методы на время от 4 до 48 часов. Ускорить время бана вы не сможете, а вот увеличить время бана — сможете!

Поможет вам следующее:
&dash; Нажмите «Выйти» на сайте шпиона, а потом вновь войдите.
&dash; Удалите все ненужные цели из шпиона за друзьями (потом их можно будет добавить).
&dash; Закройте все вкладки со шпионом, которые у вас могут быть открыты.
&dash; По возможности не заходите на сайт шпиона в течение 8-24 часов.

Как проверить что все хорошо?

Мы сделали специальную страницу, где можно убедиться, что все работает..
Если все в порядке — вы увидите Ваш VK ID, Ваше имя и колличество друзей в ВК.

Ошибка vk_api.exceptions.ApiError: [29] Rate limit reached

Хотел попробовать сделать программу для автоматической смены статуса аккаунта в вк. Во время запуска программы выдает ошибку:

vk_api.exceptions.ApiError: [29] Rate limit reached

Ошибка связана со строкой vk.status.set(text = info) . Если ее изменить на vk.status.set(info) , то появляется эта ошибка:

TypeError: call() takes 1 positional argument but 2 were given

Не могу понять в чем проблема. В документации ничего не нашел на эту тему

Модератор: immortal

Аватара пользователя

nick7zmail

Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а):
121 раз
Поблагодарили:
2008 раз

Re: [Модуль] VK Bot

Pr0gra2Mer писал(а): ↑

Чт сен 20, 2018 1:50 pm


У меня доступ к серверу только по логину и паролю + проброска на 81 порт…
http://login:password@domen.dlinkddns.c … ck_api.php
в CallBack API пишет Недопустимый адрес…
или Сервер вернул неправильный ответ: Timeout was reached

и ThisComputer.vk_answer_id должен быть с id или просто цифры?
Версия API какую выбирать?

Ещё раз прочтите первое сообщение, и укажите без логина и пароля, но с портом. ID — просто цифры.

workpage

Сообщения: 427
Зарегистрирован: Чт авг 24, 2017 9:38 am
Благодарил (а):
51 раз
Поблагодарили:
86 раз
Контактная информация:

Re: [Модуль] VK Bot

Сообщение

workpage » Чт сен 27, 2018 10:17 pm

Жду версии без открытии порта. Безопасность, она такая. Любит подставить по жизни.

Аватара пользователя

nick7zmail

Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а):
121 раз
Поблагодарили:
2008 раз

Re: [Модуль] VK Bot

Сообщение

nick7zmail » Пт сен 28, 2018 6:29 am

Да я пробовал тут пару выходных немного покапаться…че то у них протокол так замудрёно описан — капец…пример бы — я лучше в пхп коде разберусь чем в горе описательного текста =D.

Руслан

Сообщения: 193
Зарегистрирован: Чт дек 17, 2015 10:08 am
Откуда: Уфа
Благодарил (а):
36 раз
Поблагодарили:
14 раз

Re: [Модуль] VK Bot

Сообщение

Руслан » Пт сен 28, 2018 12:57 pm

не сочтите за наглость, попытаюсь объяснить, на сколько я понял метод User Long Poll API.
1. получаем APi ключ, со включенной опцией User Long Poll и версией 5.85
2. потом делаем запрос методом «messages.getLongPollServer»

Код: Выделить всё

https://api.vk.com/method/messages.getLongPollServer?lp_version=3&group_id=**********&access_token=**********************************************************************&v=5.85

3. получаем ответ

Код: Выделить всё

 {
"response": {
"key": "****************************************",
"server": "imv4.vk.com/**********",
"ts": *********************
}
} 

4. далее используя key, server и ts

Код: Выделить всё

 https://{$server}?act=a_check&key={$key}&ts={$ts}&wait=25&mode=2&version=3 

получаем и парсим сообщения.

Последний раз редактировалось Руслан Пт сен 28, 2018 8:21 pm, всего редактировалось 1 раз.

Аватара пользователя

nick7zmail

Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а):
121 раз
Поблагодарили:
2008 раз

Re: [Модуль] VK Bot

Сообщение

nick7zmail » Пт сен 28, 2018 2:28 pm

Это я всё делал. Тут проблема в том, что сообщения не парсить надо, а ловить какой то callback функцией, которую будет вызывать сервер. Для этого к нему подконнектиться, и ждать пока этот callback прилетит при новом сообщении…при чем в каком виде он прилетает я пока не понял…точнее он пока вообще не хочет прилетать. Может я что не так делаю. Я хз.

Руслан

Сообщения: 193
Зарегистрирован: Чт дек 17, 2015 10:08 am
Откуда: Уфа
Благодарил (а):
36 раз
Поблагодарили:
14 раз

Re: [Модуль] VK Bot

Сообщение

Руслан » Пт сен 28, 2018 8:41 pm

nick7zmail писал(а): ↑

Пт сен 28, 2018 2:28 pm


Для этого к нему подконнектиться, и ждать пока этот callback прилетит при новом сообщении..

а вот так

Длина массива updates может быть равна 0 (это означает, что за время wait новых событий не произошло).

не получится ? по моему с этим массивом тока можно работать используя «Флаги сообщений» периодически запрашивая, в цикле.
Про метод messages.getLongPollHistory написано, что позволяет синхронизировать сообщения. Если прочитано сообщение, то можно обновить new_pts и больше это сообщение не придет в запросе.

artemon25

Сообщения: 112
Зарегистрирован: Чт авг 25, 2016 10:33 pm
Благодарил (а):
15 раз
Поблагодарили:
6 раз

Re: [Модуль] VK Bot

Сообщение

artemon25 » Чт фев 14, 2019 11:12 pm

правильно я понимаю что через din.dns работать не будет так как есть пароль и логин нужен открытый доступ на мжд

artemon25

Сообщения: 112
Зарегистрирован: Чт авг 25, 2016 10:33 pm
Благодарил (а):
15 раз
Поблагодарили:
6 раз

Re: [Модуль] VK Bot

Сообщение

artemon25 » Пт фев 15, 2019 9:18 am

nick7zmail писал(а): ↑

Пт фев 15, 2019 6:46 am


Будет. Я же объяснял принцип действия в 1ом сообщении.

тогда наверное я что то сделал не так я создал бота и получил ключ редоктировал конфиг
define(‘CALLBACK_API_CONFIRMATION_TOKEN’, ‘ответ сервера’); ЧТО ЗДЕСЬ НАДО ПИСАТЬ?
define(‘VK_API_ACCESS_TOKEN’, ‘6786f3919d97540f05440fb67c04ec7609117bff675c3347be8103e’); //Ключ доступа сообщества
define(‘BOT_LOGS_DIRECTORY’, ‘C:_majordomohtdocscmsdebmes’); ПУТЬ НА ВИНДОВС ТОКОЙ ДОЛЖЕН БЫТЬ?

свойство создал ид вписал приходит Сервер вернул неправильный ответ
ПОХОЖЕ В КОНФИГЕ ЧТО ТО НАДО ДОПИСАТЬ

Аватара пользователя

nick7zmail

Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а):
121 раз
Поблагодарили:
2008 раз

Re: [Модуль] VK Bot

Сообщение

nick7zmail » Пт фев 15, 2019 9:29 am

nick7zmail писал(а): ↑

Сб сен 01, 2018 9:19 pm


Далее необходимо получить апи-ключ. Расписывать не буду, всё уже расписано за меня https://vk.com/dev/access_token (раздел Ключ доступа сообщества, самое простое — через настройки сообщества). Лично я выбрал все доступные опции при получении ключа, но можно ограничиться возможностями сообщений и прикрепления файлов. Далее залазим в настройки сообщества — Работа с API. Нас интересуют Ключи доступа (его мы получили ранее) и Callback API, а именно ответ который должен отправить сервер. Так же стоит поставить галочку в типах событий хотя бы на входящее сообщения.

туда надо вписать ответ, который должен вернуть сервер. Строка так и называется в настройках сообщества.

Понравилась статья? Поделить с друзьями:
  • Error timeout was reached attempt 1 5
  • Error timeout to start ssh process
  • Error tunneling socket could not be established statuscode 503
  • Error tunneling socket could not be established statuscode 502
  • Error tunneling socket could not be established cause socket hang up