首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对电报API的请求失败了。错误代码: 400。描述:错误请求:消息太长了

对电报API的请求失败了。错误代码: 400。描述:错误请求:消息太长了
EN

Stack Overflow用户
提问于 2021-12-03 17:41:02
回答 1查看 5.7K关注 0票数 1

我正在尝试使用婴儿车从Reddit subreddits检索消息。它在大多数情况下正常工作,但是我收到以下错误消息太长了,我正在使用pytelegrambotApi

片段:

代码语言:javascript
复制
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()

错误:

有什么解决办法,我可以在这里做访问完整的消息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-03 18:38:22

一条电报消息必须只包含4096字符。然后将该消息拆分为另一条消息(即其余消息)。将此代码添加到您的message_handler

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70218583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档