Ошибка ответа vk api

Думаю, некоторые знакомы с библиотеками vk_api.
Весь код был взят с туториала

Выдаёт ошибку:
vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: random_id is a required parameter

Вот сам код(в значении «token» нужно вставить свой API-ключ):

import vk_api import time vk=vk_api.VkApi(token=»») while True: messages=vk.method(«messages.getConversations»,) if messages[«count»]>=1: body=messages[«items»][0][«last_message»][«text»] if body.lower()==»привет»: vk.method(«messages.send»,) elif body.lower()==»пока»: vk.method(«messages.send»,) else: vk.method(«messages.send»,) time.sleep(1)

_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор
Последний раз редактировалось Serge_Bliznykov; 25.10.2019 в 20:58 .

Источник: www.programmersforum.ru

Авторизация при отправке API запросов (401 статус, token, authorization заголовок)

Ошибка VK API при рассылке #447

у меня есть скрипт рассылки на nodejs, при запуске ВК отдает ошибку APIError: Code №13 — Runtime error occurred during code invocation: response size is too big, с чем это может быть связано?
122725475-7a102700-d28e-11eb-8c59-db6f689aa759


122725479-7aa8bd80-d28e-11eb-9fb4-71fc9ada22f2

The text was updated successfully, but these errors were encountered:

devled-ui commented Aug 10, 2021

я думаю, что нет. на vk.com/dev нашел вот это

Обратите внимание! Существует ограничение на объем ответа. В случае, если данные в ответе занимают больше 5 МБ, вернется ошибка 13 с комментарием «response size is too big».

Источник: github.com

VK Callback API на один запрос много ответов

Пишу на PHP бота для паблика ВК, и вот что происходит, когда пользователь пишет сообщение, появляется событие message_new, и когда отвечает бот, должно появляться message_reply. Но вместо одного message_reply, их приходит очень много. На скриншоте показываю пример. Кто сталкивался с этим, подскажите, в чём может быть причина? Странно что они продолжают приходить спустя много часов даже.

Еще по теме:  Группа ВК где клюет

введите сюда описание изображения

Помимо всего этого, есть еще «Неудавшиеся запросы» И вот ответ сервера, не совсем понимаю где ошибка

HTTP/1.1 200 OK Date: Wed, 29 Mar 2017 02:21:52 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Server: awex X-Xss-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Request-ID: d8c400366020cfe9e2c0a7ba654ddccb

VK API [PHP Devel Studio] [Урок #5] — РЕШЕНИЕ ОШИБКИ

Ответы (6 шт):

А в теле ответа от сервера вы возвращаете строку ok , как это требуется в документации и показано в официальном примере?

Обратите внимание: после получения уведомления Ваш сервер должен возвращать строку «ok» и статус HTTP 200. Если сервер несколько раз подряд вернет ошибку, Callback API временно перестанет отправлять на него уведомления.

Столкнулся с той же проблемой. Установил код из документации ВК, но он всё равно дублировал ответы. Методом единоразового тыка я решил проблему. Надеюсь, Вам тоже поможет)

$request_params = array( ‘message’ => «Hello, !», ‘user_id’ => $user_id, ‘access_token’ => $token, ‘v’ => ‘5.0’ );
$request_params = array( ‘message’ => «Hello, !», ‘user_id’ => $user_id, ‘access_token’ => $token, ‘read_state’ => 1, ‘v’ => ‘5.0’ );

Мне кажется, это не логично, и такой код не должен решать нашу проблему. Но у меня теперь все отлично)

Точно такая же ошибка была. Долго разбирался, в итоге решение нашлось вот таким способом:

switch ($data->type)

Видимо приходят от api какие-то незадокументированные типы ответов. Короче говоря, default тоже надо обрабатывать.

Код:

Корочее. у кого до сих пор не работает, добавьте(см на картинку). Так вот. message_reply приходит когда смс прочитано, но default или else не помогают надо прямо на него указывать, и еще, такие ответы с заголовком и echo нужно после каждого запроса.

Еще по теме:  Как скрыть статус в ВК

C оф. документации

На все запросы Callback API нужно отвечать «ОК»

header(«HTTP/1.1 200 OK»); echo ‘OK’;

У меня было такая же проблема из-за того, что «ОК» повторялось дважды (пишу драйвер для botman.io)

Ваш скрипт должен ответить ok и завершится в течение ~2с, иначе вк считает, что запрос не дошел. Если у вас web сервер apache или nginx, то для решения этой проблемы вы можете отправлять вк OK и разрывать соединение, не дожидаясь завершения скрипта. Используйте эту функцию:

public function sendOK() < set_time_limit(0); ini_set(‘display_errors’, ‘Off’); // для Nginx if (is_callable(‘fastcgi_finish_request’)) < session_write_close(); fastcgi_finish_request(); return True; >// для Apache ignore_user_abort(true); ob_start(); header(‘Content-Encoding: none’); header(‘Content-Length: 2’); header(‘Connection: close’); echo ‘ok’; ob_end_flush(); flush(); return True; >

Но у вас написано, Server: awex. Скорее всего вы используете 000.webhost, он слишком долгий и не подходит для ботов, так же вы не сможете воспользоваться функцией выше для отправки ok и принудительного закрытия соединения.

Источник: husl.ru

Рейтинг
( Пока оценок нет )
Загрузка ...