“对 Telegram API 的请求失败。错误代码:400。描述:错误请求:消息太长”

问题描述 投票:0回答:2

我正在尝试使用 PRAW 从 Reddit subreddits 检索消息。它在大多数情况下都能正常工作,但我收到以下错误消息,即消息太长。我正在使用 pytelegrambotApi

片段:

import praw
import telebot

bot = telebot.TeleBot(token)  

reddit = praw.Reddit(
    client_id=client, #these details are given accordingly and are correct. No errors here.
    client_secret=secret,
    user_agent="user_agent",
)

def get_posts(sub):
   for submission in reddit.subreddit(sub).hot(limit=10):
    print(submission)
    if submission.author.is_mod:
      continue
    elif submission.selftext=="":
      return submission.title,submission.url
    else:
      print("It's working")
      print(submission.url)
      return submission.title,submission.selftext 

@bot.message_handler(func=lambda message: True)
def echo_message(message):
    subreddit = message.text
    title,post = get_posts(subreddit)
    m = title + "\n" + post
    bot.reply_to(message,m)

bot.infinity_polling()

错误: 我可以在这里采取任何解决方法来访问完整消息吗?

python-3.x telegram-bot reddit praw py-telegram-bot-api
2个回答
5
投票

一条 Telegram 消息不得超过

4096
个字符。然后该消息被分割成另一条消息(即剩余的消息)。 将此代码添加到您的
message_handler
:

m = title + "\n" + post
if len(m) > 4095:
    for x in range(0, len(m), 4095):
        bot.reply_to(message, text=m[x:x+4095])
else:
    bot.reply_to(message, text=m)

0
投票

如果你有 infinity_polling 也许这就是问题所在

© www.soinside.com 2019 - 2024. All rights reserved.