
Карабанов
27.06.2017
18:33:00
Спасибо большое

Fedor
27.06.2017
18:44:37
Товарищи..
Если, допустим, бот запрашивает два числа
введи число 1,
введи число 2
как бот понимает на какой стадии находится человек?

Serg
27.06.2017
18:45:00

Fedor
27.06.2017
18:45:04
то есть как дать понять боту, что вводимое значение - это именно то, чего ожидает бот?

Google

Aztwin LK
27.06.2017
18:45:19

Sergey❄️
27.06.2017
18:45:20

Aztwin LK
27.06.2017
18:45:26
В базе храни состояние пользователя

Sergey
27.06.2017
18:45:27
подскажите вот такую вещь вот я прописал текст допустим на главной бота он(заказчик) хочет чтобы была возможность его менять, подскажите как? типа все эти тексты в базе хранить ?

Serg
27.06.2017
18:45:34

Fedor
27.06.2017
18:45:48

Sergey❄️
27.06.2017
18:46:18
можно не в базе

Aztwin LK
27.06.2017
18:46:21
Лучше в базе

Sergey
27.06.2017
18:46:52
но эт гемор какой то не?

Fedor
27.06.2017
18:46:58

Google

Aztwin LK
27.06.2017
18:46:59
Создаешь таблицу в базе например "тексты"

Serg
27.06.2017
18:47:09
чтоб понять как писать бота просто попробуйте сначала написать серверную часть любого сайта с активным содержимым (формы, вывод контекстной информации пользователя)
По сути бот - это и есть этот сайт

Fedor
27.06.2017
18:48:01
либо в куки

Serg
27.06.2017
18:48:33
но эт гемор какой то не?
гемор???
да ты что )))
к тебе с каждым сообщением приходит ID пользователя. Поднимаешь по нему информацию, что-то считаешь, запоминаешь новое состояние в базе. Отдаешь текст, забываешь про пользователя. Вот весь по сути цикл обработки

Fedor
27.06.2017
18:48:36
post и get массивы. тут этого нет.
в общем, в базу писать его состояние?

Serg
27.06.2017
18:49:00

Sergey
27.06.2017
18:49:18

Serg
27.06.2017
18:49:24
если ты используешь вебхуки - то к тебе по сути пост запрос приходит

Fedor
27.06.2017
18:49:37
да, вебхуки

Aztwin LK
27.06.2017
18:49:46

Serg
27.06.2017
18:50:13
$message = json_decode(trim(file_get_contents('php://input')),1);

Fedor
27.06.2017
18:50:25
короче, в базу?
а потом состояние проверять через switch (ну или if else) ?

Serg
27.06.2017
18:51:34
ну хочешь в редис, мемкеш, файлкеш

Aztwin LK
27.06.2017
18:52:01
Через if
Зачем тебе тут свитч?

Serg
27.06.2017
18:52:20
что именно через if ???

Google

Aztwin LK
27.06.2017
18:52:22
Чувак давайте я тебе по быстрому объсню
А то никто толком ничего не пишет
Короче смотри
Пользователь отправил команду /start

Fedor
27.06.2017
18:52:46
так
ну я понимаю примерно как это работает

Aztwin LK
27.06.2017
18:53:18
Ты ему в ответ "Отправьте Ваше имя" и состояние в базу этого пользователя меняешь например на "insert_name"
Далее у тебя идет проверка в кодк
Если пользователь отправил текстовое сообщнеи и его состояние в базе insert_name значит это его имя
Записываешь в базу отправленный текс и выводишь новое сообщение "Отправте фамилию" и обновляешь состояние пользователя на insert_lname
Думаю проще некуда

Fedor
27.06.2017
18:54:48
понял

Aztwin LK
27.06.2017
18:54:55
Молодец

Fedor
27.06.2017
18:54:59
спасибо

Aztwin LK
27.06.2017
18:55:11
Рад помочь

Serg
27.06.2017
18:55:46
ток учти...
если ты не пользуешь бибилотеки, то /start и команда от кнопки - придут совершенно разные структуры данных

Fedor
27.06.2017
18:56:04
я без либ. фак)

Serg
27.06.2017
18:56:22
на кнопку надо досылать команду answerCallbackQuery

Aztwin LK
27.06.2017
18:56:44
Типы разные это верно один это Message другой CallbackQuery

Google

Serg
27.06.2017
18:56:48
т.е. помимо того, что ты в ответ на вебхук шлешь сообщение и кнопки ты в догонку еще курлом шлешь answerCallbackQuery

Fedor
27.06.2017
18:57:09
это в любой клаве такой ответ придет?

Aztwin LK
27.06.2017
18:57:23
Инлайн

Fedor
27.06.2017
18:57:23
ой, тьфу.

Serg
27.06.2017
18:57:31
гемор канеш сильный.... если весь интерфейс на кнопках - то по сути двойной трафик становится

Aztwin LK
27.06.2017
18:58:12
Зря
У меня все боты на инлайне
Терпеть не могу обычные кнопки

Serg
27.06.2017
18:58:40
ты вообще на каком языке будешь писать?

Fedor
27.06.2017
18:58:47
php

Aztwin LK
27.06.2017
18:58:49
ПХП
Ясно же

Fedor
27.06.2017
18:59:11
пиэйчпи

Aztwin LK
27.06.2017
18:59:15
Он же показывал кусок кода

Fedor
27.06.2017
19:00:10
и еще.. я хочу хранить всех пользователей, которые когда-либо писали боту в базе. для рассылки. это нормально, что каждый раз, когда пользователь пишет сообение я проверяю есть ли он у меня в базе?

Serg
27.06.2017
19:00:26
просто начни писать.
создай скрипт бота, создай бебхук, выложи куда нить и просто выводи эхов в бота
$message = json_decode(trim(file_get_contents('php://input')),1);
print_r($message,1)
для начала

Aztwin LK
27.06.2017
19:00:28
Конечно

Serg
27.06.2017
19:00:35
т.е. пойми что ходит
я писал сразу в базу - так проще

Aztwin LK
27.06.2017
19:00:55
Так на оф сайте уже всё расписано

Google

Serg
27.06.2017
19:01:20
этот что ли кусок?

Aztwin LK
27.06.2017
19:02:21
Агась
Видно же пыха

Fedor
27.06.2017
19:03:47
или это тормозит бота только?
хотя если и тормозит, то даже не заметно

Serg
27.06.2017
19:04:36
это нормально !
для ускорения можешь использовать memcache

Aztwin LK
27.06.2017
19:04:57
Это нормально

Serg
27.06.2017
19:04:59
т.е. положил в базу, положил в мемкеш.
а потом просто проверяешь в мемкеше
чтоб уложить твоего бота - надо гнать по 100 сообщений в секунду

Fedor
27.06.2017
19:06:25
иду гуглить про мемкеш)

Aztwin LK
27.06.2017
19:06:53
Больше 30 в секунду хватит

Fedor
27.06.2017
19:06:53

Aztwin LK
27.06.2017
19:06:59
Да
Но я либу дописывал под себя

Fedor
27.06.2017
19:07:10
я чет гуглил либы, не разобрался

Aztwin LK
27.06.2017
19:07:17
Да их куча
На офсайт зайди
Там есть ссылку на либу для пыхи
Юзай на здоровье
Там прописано практически всё
Удобно