Telepot电报机器人。 InlineKeyboardButton不适用于某些文本

时间:2018-11-01 12:22:27

标签: python telegram-bot telepot

我有两个在本地和生产服务器上运行的电报机器人实例。我再次检查了所有环境是否相同,并使用virtualenv进行了设置。

本地版本工作正常,但prod无效。当我按下按钮时,什么也没发生。我发现只有一个特定文本的按钮不起作用。

我进一步进行了试验,发现如果我剪切此文本,例如[0:386]或更少的按钮可以使用,但是如果[0:387]或更多的话,它将停止。有趣的是,如果我切断头[380:976](全长976),它也可以工作。这就是为什么我认为这与某些特殊字符无关,因为这些范围重叠并且在此位置(字的中间)没有什么特殊之处,与发送缓冲区的溢出无关,因为字符串的较大部分可以正常工作。 / p>

最后,函数sendMessage返回Message对象的实例,而没有错误,就像documentation所说的那样。

以下是部分代码:

def send_hello(self, chat_id):
    text = BotText.objects.get(name=self.name).welcome
    if text is None or text == '':
        text = BotText.objects.get(name='common').welcome

    reply_markup = InlineKeyboardMarkup(
        inline_keyboard=[
            [
                InlineKeyboardButton(
                    text='text_1',
                    callback_data="callback_data_1"
                ),
                InlineKeyboardButton(
                    text='text_2',
                    callback_data='callback_data_2'
                ),
            ],
            [
                InlineKeyboardButton(
                    text='О проекте',
                    callback_data='about'
                ),
                InlineKeyboardButton(
                    text='Контакты',
                    callback_data='contacts'
                ),
            ]
        ]
    )

    self.send_message(chat_id, text, parse_mode='Markdown', reply_markup=reply_markup)

def send_message(self, chat_id, text, parse_mode=None, reply_markup=None):
    self.bot.sendMessage(
        chat_id,
        text,
        parse_mode=parse_mode,
        reply_markup=reply_markup,
    )

还有什么可以检查的?

UPD: 文本不包括,对不起

Привет!

Это бот проекта *Роскомсвобода*.

Тут можно:
- поискать по реестру запрещенных сайтов и реестру организаторов распространения информации (ОРИ);
- выбрать себе VPN-сервис, с помощью которых можно восстановить доступ к неправомерно заблокированной информации;
- подключить наш прокси для Telegram;
- связаться с Роскомсвободой.

*1) Поиск*
Чтобы осуществить поиск введите ip-адрес или имя домена.

*2) Выбрать VPN*
В этом чате вы можете выбрать VPN-сервис из *VPNlove.me* - маркетплейса проверенных  VPN.
Мы тщательно отбираем VPN-сервисы, которые размещаем в своем маркетплейсе.
Главные требования - это *уважение к частной жизни пользователей* и *запрет какой-либо цензуры*.

*3) Telegram-прокси*
Чтобы подключиться к Telegram через наш прокси - нажмите на ссылку

*4) Связаться с Роскомсвободой*

По общим вопросам: roskomsvoboda@rublacklist.net
Для СМИ: +7-903-003-89-52
По вопросам функционирования сервиса VPNlove.me: contact@vpnlove.me

0 个答案:

没有答案