我有两个在本地和生产服务器上运行的电报机器人实例。我再次检查了所有环境是否相同,并使用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