Я загрузил этот open-source code из GitHub, написанный на Python (что я довольно новичок в этом), я хотел, чтобы мой бот имел пользовательскую клавиатуру, а не позволял пользователи говорят, что хотели. например, если пользователь запустит чат с моим ботом, они автоматически отправят /start
, и когда это произойдет, я хочу, чтобы мой бот дал им два-три варианта ['Option One'], [Option Two],
на клавиатуре, когда они выбирают один из этих параметров, я хочу иметь совершенно разные варианты (например, ['Plan A'], ['Plan B'],
). И снова, когда они выбирают один из них, они получают разные варианты на своей клавиатуре и так далее.Telegram Bot: Пользовательская клавиатура [Python]
class WebhookHandler(webapp2.RequestHandler):
def post(self):
urlfetch.set_default_fetch_deadline(60)
body = json.loads(self.request.body)
logging.info('request body:')
logging.info(body)
self.response.write(json.dumps(body))
update_id = body['update_id']
try:
message = body['message']
except:
message = body['edited_message']
message_id = message.get('message_id')
date = message.get('date')
text = message.get('text')
fr = message.get('from')
chat = message['chat']
chat_id = chat['id']
if not text:
logging.info('no text')
return
def reply(msg=None, img=None):
if msg:
resp = urllib2.urlopen(BASE_URL + 'sendMessage', urllib.urlencode({
'chat_id': str(chat_id),
'text': msg.encode('utf-8'),
'disable_web_page_preview': 'true',
})).read()
else:
logging.error('no msg or img specified')
resp = None
logging.info('send response:')
logging.info(resp)
if text.startswith('/'):
if text == '/start':
reply('Bot enabled')
setEnabled(chat_id, True)
elif text == '/stop':
reply('Bot disabled')
setEnabled(chat_id, False)
else:
reply('That ain\'t been coded yet.')
Как я сказал, что я девственница в Pyhton, и я был бы очень благодарен, если вы применили свой код в код, который выше этого текста, вместо того чтобы дать мне идеи (которые я не знаю, как использовать их и выполнить работу!).