бот-телеграмма с php (отношение отправки сообщения и получения сообщения от пользователя)

в боте телеграммы (php), как определить связь между сообщением, которое отправляется пользователю, и пользователем, написавшим ответ? как я могу определить, является ли это ответом на этот текст в коде бота телеграммы, например, сначала я помещаю 5 кнопок, и когда пользователь нажимает каждую кнопку, пользователь должен ввести текст, который я хочу определить, это ответ конкретной кнопки. как я могу определить это с помощью php?


person laleh    schedule 09.09.2015    source источник


Ответы (2)


  1. Когда пользователь выбирает один вопрос из меню бота, сохраняет его в базе данных. например, пользователь выбирает «вопрос2»:

    storLastPlace($userId,'question2');
    
  2. Когда приходит новое сообщение боту от этого пользователя, проверьте его на последнем месте и выполните соответствующие действия, например:

    $lastPlace = getLastPlace($userId);
    if($lastPlace){
        switch ($lastPlace) {
        case 'question1':
            // recive answer1
            break;
        case 'question2':
            // recive answer1
            break;
        }
    }
    
person Sadegh PM    schedule 18.09.2015
comment
спасибо, это хорошее решение для веб-сервисов, но мы можем использовать словарь в C Sharp, а затем, если программа дала сбой и не сохраняется в базе данных, при перезапуске программы вернитесь назад, повторите и снова просканируйте последний нежелательный запрос, чтобы получить ответ один раз. ваше решение лучше, но когда у нас так много запросов, у нас большая нагрузка на сервер базы данных... - person saber tabatabaee yazdi; 20.11.2015
comment
@saber-tabatabaee-yazdi, вопрос о php, а в php нет словаря. - person Sadegh PM; 08.11.2018

Если я правильно понял вашу проблему, вы можете создать таблицу/коллекцию в своей базе данных и сохранить последнее отправленное сообщение с Telegram ID пользователя, это может быть так:

{
    userID : xxxxxx
    lastMessageSent : Button1
}
person Amir    schedule 12.09.2015