Задать вопрос
@NooBick

Бот на php бесконечная отправка сообщения, почему?

<?php

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

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

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

// Secret key
$secretKey = '';

//Получаем и декодируем уведомление
$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->from_id;

        $message = $data->object->text;

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

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

        	//С помощью messages.send и токена сообщества отправляем ответное сообщение
        	$request_params = array(
            	'message' => "Привет, как у тебя дела?",
            	'user_id' => $userId,
            	'access_token' => $token,
            	'v' => '5.80'
        	);

        	$get_params = http_build_query($request_params);

        	file_get_contents('https://api.vk.com/method/messages.send?' . $get_params);
        	return "Hello World";
        };

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

        break;

	}
?>


5cf7a576ce645345411008.png
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@kifirch
Может быть потому что в случае успеха api никогда-никогда не вернет "ok"
Потому что аппликэйшн закончит работу на return "Hello World"?

И тогда клиент возможно пробует неск раз?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
видимо у тебя происходит рекурсия и бот начинает отвечать сам себе, дамп $data выложи
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽