HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.07.2019, 10:18
kotov
Участник форума
Регистрация: 27.07.2018
Сообщений: 128
С нами: 4103825

Репутация: 18
По умолчанию

Следующий код, вк просто флудит на него запросами о новых сообщениях, видимо не принимает слово Ок, как решить?

PHP:





Код:
type)
    {
        case 'confirmation':
            echo $VK_CONFIRM;
        break;
        case "message_new":
            $userId = $data->object->user_id;
            $request_params = array(
                'message' => "Ты чето написал, я определил",
                'chat_id' => '1',
                'access_token' => $VK_TOKEN,
                'v' => '5.0'
            );
            $get_params = http_build_query($request_params);
            echo "Ok";
            file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
            break;
    }
?>
 
Ответить с цитированием

  #2  
Старый 23.07.2019, 12:06
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от kotov  

видимо не принимает слово Ок
Что это значит?

Если ты делаешь LongPoll запрос, то в коде что-то явно не хватает. Например, первоначального запроса.

У ВК есть PHP SDK. Воспользуйся им.
 
Ответить с цитированием

  #3  
Старый 23.07.2019, 12:11
xISRAPILx
Участник форума
Регистрация: 28.02.2018
Сообщений: 247
С нами: 4319646

Репутация: 63
По умолчанию

Цитата:
Сообщение от legend2360  

Что это значит?
Если ты делаешь LongPoll запрос, то в коде что-то явно не хватает. Например, первоначального запроса.
У ВК есть PHP SDK. Воспользуйся им.
У него там Callback, можно понять по php://input. В Callback нужно отдавать в ответ "ok", для подтверждения правильной обработки запроса, иначе ВК будет стучаться пока не получит ok.

Цитата:
Сообщение от kotov  

Следующий код, вк просто флудит на него запросами о новых сообщениях, видимо не принимает слово Ок, как решить?

PHP:





Код:


Измени "Ok" на "ok".
 
Ответить с цитированием

  #4  
Старый 25.07.2019, 15:28
альбертио представляет
Постоянный
Регистрация: 25.07.2019
Сообщений: 348
С нами: 3581468

Репутация: 48
По умолчанию

1) У тебя включены возможности выводов всех возможных варнингов на страницу, а не прямиком в логи.

Замени строки:

PHP:





Код:
ini_set
(
'error_resporing'
,
false
)
;
ini_set
(
'display_errors'
,
false
)
;
ini_set
(
'display_startup_errors'
,
false
)
;


2) За счет 1-го пункта твой сервер возвращал Notices/Warnings/Errors, но никак не Ok.

P.S. Там выше написали, что заменить Ok на ok - роли не играет.

3) В PHP быстрее работают массивы с ассоциативными ключами, нежели объекты:

PHP:





Код:
$user_id
=
(
int
)
$data
[
'object'
]
[
'user_id'
]
;


Для этого замени строку на:

PHP:





Код:
$data
=
json_decode
(
file_get_contents
(
"php://input"
)
,
true
)
;
//вторым аргументом в функции json_decode() мы разрешили использовать ассоциативный массив, а не объект


4) Для полной оптимизации, после того, как ты подтвердил ключ (метод confirmation), можешь перед json_decode() вставить следущее:

PHP:





Код:
echo
'ok'
;
fastcgi_finish_request
(
)
;


В таком случае, твой сервер сначала выдаст ответ 'ok' (HTTP 200 OK) и закроект соединение с Callback API, а потом уже начнет обрабатывать запрос. Это лучше тем, что Callback API не будет флудить твоему серверу запросами, если, к примеру, у тебя в скрипте идет перебор больших значений. Дело в том, что у Callback API установлен лимит ожидания ответа на 10 секунд.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.