@mrisid

Бот vk на php 2 раза высылает привет.Как пофиксить?

Есть код в котором если человек введёт привет или Привет то бот ответит ему - Привет!
Беда в том что иногда бот присылает 2 сообщения Привет!
Может проблема кроется в хостинге ? (Он у меня бесплатный)
Вот сам код ->

<?php


$confirmationToken = 'Тут что должен ответить сервер VK';

$token = 'Тут ключ API';


$secretKey = 'Тут секретный ключ';

$data = json_decode(file_get_contents('php://input'));


if(strcmp($data->secret, $secretKey) !== 0 && strcmp($data->type, 'confirmation') !== 0)
    return;


switch ($data->type) {
    case 'confirmation':
        echo $confirmationToken;
        break;
case 'message_new': 
    $user_id = $data->object->user_id; 
    $user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0")); 
    $user_name = $user_info->response[0]->first_name; 
    $message = $data->object->body; 
    $messages_array = [ 
        'Привет' => "Привет!", 
    ]; 
    foreach($messages_array as $k => $v){ 
        if(strtolower($message) == strtolower($k)){$otwet = $v;}
} 
$request_params = [ 
'message' => $otwet, 
'user_id' => $user_id, 
'access_token' => $token, 
'v' => '5.0' 
]; 
$get_params = http_build_query($request_params); 
file_get_contents('https://api.vk.com/method/messages.send?'. $get_params); 
echo('ok'); 
break; 
return false;

}
?>
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
вероятнее всего событийная модель тебе отправляет твое же сообщение, проверяй флаг что реагируешь только на входящие сообщения, если я правильно помню, то после твоего вызова апи с месседж сендом ты получаешь его в событиях и вероятно не корректно обрабатываешь то, что получаешь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы