Jump to content

exared

Forum Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

1 Neutral

About exared

  • Rank
    Newbie
  • Birthday 01/12/1978

Equipment

  • Keenetic
    Zyxel Keenetic Ultra II
  1. Добавьте в скрипт приведенную ниже функцию, предварительно задав новую переменную KMSG_URL: KMSG_URL=$URL'/sendMessage' function send_keyboard { local text="$1"; shift 1; local keyboard=init OLDIFS=$IFS; IFS=$(echo -en "\"") for f in $*;do [ "$f" != " " ] && local keyboard="$keyboard, [\"$f\"]";done IFS=$OLDIFS; local keyboard=${keyboard/init, /} res=$(curl -s "$KMSG_URL" --header "content-type: multipart/form-data" -F "chat_id=$TARGET" -F "text=$text" -F "reply_markup={\"keyboard\": [$keyboard],\"one_time_keyboard\": false}") } Аргументы функции: первый - сообщение в чате, последующие - надписи на кнопках. При нажатии на кнопку соответствующая надпись может быть использована как команда. Поэтому кириллица в аргументах функции (кроме первого) нежелательна. Поле one_time_keyboard указывает клиенту скрыть или нет клавиатуру после использования (после нажатия на кнопку). Её по-прежнему можно будет открыть через иконку в поле ввода сообщения. По умолчаниюFalse Пример использования: send_keyboard "I can help you find and share classical music" "Get random music" "Send music to friends"
  2. Подскажите, как реализовать перенос строки в сообщениях от бота Telegram? Ни один из способов не работает: /n \n %0A /r/n
  3. Поздно заметил Ваш вопрос. Все-таки поделюсь. В своем проекте использовал следующую простую конструкцию, помещенную в самом конце скрипта: [ $USER = $NAMEA ] || send_message "$TARGET" "Sorry. Private bot" [ $USER = $NAMEA ] && send_message "$TARGET" "$msg" Заменив строку send_message "$TARGET" "$msg" Переменная NAMEA задается в начале скрипта и хранит значение Вашего username, взятого из Telegram
×