telegram-bot 相关问题

Bot API是一个基于HTTP的界面,专为那些热衷于为Telegram构建机器人的开发人员而设计,Telegram是一个带有文档API的即时消息应用程序。如果您正在编写电报机器人并且有关于Bot API的特定问题,请使用此标记。

如何使用 telethon 将消息发送到电报中的特定主题[已关闭]

我是一个拥有各种主题的超级群组的管理员。我想发送一条给定的消息,说“嗨!”到主题之一。发送到该主题的第一条消息的消息链接是 https://t....

回答 1 投票 0

如何将 Telegram 聊天机器人与 React 网站聊天小部件连接?

如何将电报聊天机器人与您的网站小部件聊天连接?所以我可以在我的网站上写消息并以电报形式接收它。应该通过 socket.io 进行吗?最佳实践是什么?...

回答 1 投票 0

如何使用远程机器人进行内联模组?

我想为我的机器人制作一个内联模组,我什至不会尝试制作它,它仍然不起作用,它只是加载并且按钮不会弹出。 如果有人能展示如何真正做到这一点,那就太好了...

回答 1 投票 0

如何在公共群组中获取用户的邀请人

我正在尝试将新用户链接到他的邀请者。 但我在“chat_join_request”事件中找不到有关邀请者的任何信息。 有没有解决方案可以找出用户使用哪个邀请链接...

回答 1 投票 0

如何将可收藏的电报用户名分配给机器人

我想知道有没有办法将可收集的 Telegram 用户名分配给机器人? - 实际上,我需要使用与 Telegram API 配合使用的机器人发送高级表情符号。 我该怎么做呢?

回答 1 投票 0

如何在bot.sendMessage()中发送超链接

我的机器人发送链接。所以我想包含一个像 HTML 那样的超链接,例如 -a href="google.com" Google /a 显示一个名为“Google”的可点击文本,我该怎么做...

回答 3 投票 0

冲突:被其他getUpdates请求终止;确保只有一个机器人实例正在运行

有人遇到这样的错误吗?我该如何修复它们? 2021-11-07 08:29:38,643 - telegram.ext.updater - 错误 - 获取更新时出错:冲突:被其他 getUpdates 请求终止;确保

回答 5 投票 0

如何禁用通过向下滑动关闭 Telegram Web 应用程序?

我正在使用 React Js 创建一个应用程序。 TG Web 应用程序中有一个游戏。您需要通过收集组合来消除球。但是当我向下滑动时,Tg 想要关闭游戏。 我尝试添加触摸-

回答 2 投票 0

如何配置 Telegram 机器人来监听和响应 Telegram 频道中的消息?

我已经使用IDBot获取了Telegram频道ID,简化了识别过程。此外,我已将频道内的机器人提升为管理员状态,授予其完全管理权限...

回答 1 投票 0

使用java将带有表情符号的文本从电报机器人发送到群组

我使用java库 org.telegram 电报机器人 6.8.0 我使用java库 <dependency> <groupId>org.telegram</groupId> <artifactId>telegrambots</artifactId> <version>6.8.0</version> </dependency> 我使用这个java代码向电报组发送消息 class MyBot extends TelegramLongPollingBot { ... } ... MyBot bot = new MyBot...; bot.execute(new SendMessage( groupId, null, "text with emoji \u1F601", null, null, null, null, null, null, null, null )); 但是群里的消息没有表情符号。我尝试使用像这样的字节表示法字符串 \xF0\x9F\x93\xA7 但只是我在组中收到的 - 该字符序列不是表情符号。 如何发送表情符号? 我已经开始使用这个,我刚刚看到它,抱歉迟到了,但对我来说使用这个符号: “短信\uD83D\uDE01”` 问题似乎是java使用它自己的unicode编码,所以你需要使emoji unicode适应它。这样做的方法,对我来说,它会进入这个网站https://apps.timwhitlock.info/emoji/tables/unicode,进入表情符号,寻找UTF-16 LE,你所需要的就是转对。在这种情况下: UTF-16 LE:3D D8 01 DE 你拿起前两对并把它们一对一对地倒放:\ud83d 对下一个 \ude01 执行同样的操作。 将它们放在一起,你就拥有了它。 希望这对您有帮助。

回答 1 投票 0

如何使用电报机器人向聊天发送预定消息?

我正在编写我的电报机器人,但遇到了问题。我需要机器人不向聊天发送消息,而是向该聊天的“预定消息”发送消息。 在电报客户端中,我可以这样做...

回答 1 投票 0

Python Telegram Bot 中的解析模式

我希望在单击 context.user_data["code"] 时发送此消息后自动复制它,所以我使用了 `` 和 parse_mode="MarkdownV2" 等待 context.bot.send_mess...

回答 1 投票 0

第二次通过 Telegram 机器人输入数据时出错

创建电报机器人时出错,输入姓名/电子邮件/电话时,我要求他再次执行此操作,然后他给我以下错误消息: 创建电报机器人时出错,输入姓名/电子邮件/电话时,我要求他再次执行此操作,然后他给我以下错误消息: <HttpError 400 when requesting https://sheets.googleapis.com/v4 /spreadsheets/1saG- dfVZEUmu_dLoOjm85XEc0xyMIQMLUWslXTVjrQc/values/DadosTelegram%21A5%3AD5?valueInputOption=USER_ENTERED&alt=json returned "Requested writing within range [DadosTelegram!A5:D5], but tried writing to column [E]". Details: "Requested writing within range [DadosTelegram!A5:D5], but tried writing to column [E]"> 我在通过Python运行电报机器人时尝试第二次插入数据,它插入了第一个数据,但是在第二次尝试插入数据时,它给出了错误。 import os.path import datetime import telebot import requests import io from PIL import Image from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery, InputMediaPhoto from functools import partial from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError CHAVE_API = "secret" bot = telebot.TeleBot("secret") #mensagem de continuidade do bot message_continius = "Você está no controle! Se quiser experimentar outras opções ou precisar de mais informações, estou à disposição:" SCOPES = ['https://www.googleapis.com/auth/spreadsheets'] SAMPLE_SPREADSHEET_ID = 'secret' SAMPLE_RANGE_NAME = 'DadosTelegram!A1:D10' def main(): global user_data user_data = {} bot.polling() def save_to_google_sheets(user_data): creds = None if os.path.exists('token.json'): creds = Credentials.from_authorized_user_file('token.json', SCOPES) if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'client_secret.json', SCOPES ) creds = flow.run_local_server(port=0) with open('token.json', 'w') as token: token.write(creds.to_json()) try: service = build('sheets', 'v4', credentials=creds) # Determine the next empty row in the first column result = service.spreadsheets().values().get( spreadsheetId=SAMPLE_SPREADSHEET_ID, range="DadosTelegram!A:A" # Check the entire column A ).execute() values = result.get('values', []) next_empty_row = len(values) + 1 range_name = f"DadosTelegram!A{next_empty_row}:D{next_empty_row}" # Assume you have 4 columns of data user_data_values = user_data + [datetime.date.today().strftime('%d/%m/%Y')] values_update = [ user_data_values, ] # Update the range name based on the next empty row range_name = f"DadosTelegram!A{next_empty_row}:D{next_empty_row}" result = service.spreadsheets().values().update( spreadsheetId=SAMPLE_SPREADSHEET_ID, range=range_name, valueInputOption="USER_ENTERED", body={'values': values_update} ).execute() except HttpError as err: print(err) @bot.message_handler(func=lambda message: True) def send_welcome(message): user_data[message.chat.id] = [] response = requests.get("https://media.discordapp.net/attachments/1046247245303001109/1228049740508168284/ConsisteLogo.png?ex=662aa172&is=66182c72&hm=bc9562674b28a5a3255d6290507b60cda73976a9d478f4d194b73cb86914ed50&=&format=webp&quality=lossless") img = Image.open(io.BytesIO(response.content)) img.save("temp.webp", "webp") with open("temp.webp", "rb") as f: bot.send_sticker(message.chat.id, f) os.remove("temp.webp") send_keyboard(message, "Olá, Seja bem vindo a Consiste! Escolha uma opção para continuar:") def send_keyboard(message, message_text): keyboard = InlineKeyboardMarkup() button1 = InlineKeyboardButton("Saber Mais Sobre a Consiste", callback_data="opcao1") button2 = InlineKeyboardButton("Quero Entrar em Contato com a Consiste", callback_data="opcao2") button3 = InlineKeyboardButton("Quero que a Consiste entre em contato comigo", callback_data="opcao3") button4 = InlineKeyboardButton("Finalizar Atendimento", callback_data="finalizar") keyboard.row(button1) keyboard.row(button2) keyboard.row(button3) keyboard.row(button4) bot.send_message(message.chat.id, message_text, reply_markup=keyboard) @bot.callback_query_handler(func=lambda call: True) def callback_inline(call): if call.data == "opcao1": bot.send_photo(call.message.chat.id,"https://media.licdn.com/dms/image/C4E03AQG7G7Gl7htZbQ/profile-displayphoto-shrink_200_200/0/1517610064166?e=1718236800&v=beta&t=DFmyD5O8UI4KusfYf9jxx-ZfjZ51rnFQ3tnQaqZrvdg") bot.send_message(call.message.chat.id, "Esté é Marcos Vinicius Fonseca, nosso Presidente") bot.send_message(call.message.chat.id,"""CONSISTE: Servindo ao Sucesso Na CONSISTE, nossa missão é clara: impulsionar o sucesso dos nossos clientes. Combinamos paixão por tecnologia e comprometimento com resultados para oferecer soluções inovadoras. Nossa equipe, composta por profissionais íntegros e criativos, trabalha em um ambiente de confiança e colaboração, onde o cliente é prioridade absoluta. O XTR, nossa solução, é flexível e adaptável a diversas áreas. Desde a coleta de dados até o relacionamento com clientes, promove uma gestão eficiente e focada em resultados tangíveis. Venha conhecer a CONSISTE e descubra como podemos ajudar a impulsionar o seu sucesso empresarial, na CONSISTE, servir é nossa paixão e seu sucesso, nossa prioridade. para saber mais acesse: https://www.consiste.com.br/portal.nsf/index.xsp""") send_keyboard(call.message, message_continius) elif call.data == "opcao2": bot.send_message(call.message.chat.id, """ Você pode entrar em contato com a Consiste das seguintes formas: Fone: (71) 2102-6969 E-mail: [email protected] Para saber mais você também pode entrar em nosso Site: https://www.consiste.com.br/portal.nsf/index.xsp""") send_keyboard(call.message, message_continius) #Pedindo Nome elif call.data == "opcao3": bot.send_message(call.message.chat.id, "Você Escolheu: Quero que a Consiste entre em contato comigo") bot.send_message(call.message.chat.id, "Por favor, digite seu Nome:") bot.register_next_step_handler(call.message, partial(get_email, user_id=call.message.chat.id)) #Finalizando Conversa elif call.data == "finalizar": bot.send_message(call.message.chat.id, "Atendimento finalizado, a Consiste agradeçe!") bot.clear_step_handler(call.message) def get_email(message, user_id): user_data[user_id].append(message.text) bot.send_message(message.chat.id, "Por favor, nos informe seu E-mail:") bot.register_next_step_handler(message, partial(get_telefone, user_id=user_id)) def get_telefone(message, user_id): user_data[user_id].append(message.text) bot.send_message(message.chat.id, "Por favor, nos informe seu Telefone:") bot.register_next_step_handler(message, partial(get_phone, user_id=user_id)) def get_phone(message, user_id): phone = message.text if len(phone) < 12 and not phone.startswith('+'): phone = "+55" + phone user_data[user_id].append(phone) bot.send_message(message.chat.id, "Obrigado pela colaboração, entraremos em contato em breve!") send_keyboard(message, message_continius) save_to_google_sheets(user_data[user_id]) if __name__ == "__main__": main() 从您显示的Requested writing within range [DadosTelegram!A5:D5], but tried writing to column [E]错误消息来看,我猜测在这种情况下,values_update的值的长度可能是5。在您的脚本中,从range_name = f"DadosTelegram!A{next_empty_row}:D{next_empty_row}"开始,使用了“A”到“D”列。在这种情况下,当值的长度超过5时,就会出现这样的错误。如果你想把两个值都放进去而不报错,下面的修改怎么样? 来自: range_name = f"DadosTelegram!A{next_empty_row}:D{next_empty_row}" 致: range_name = f"DadosTelegram!A{next_empty_row}" 通过此修改,值将被放入使用第一个单元格范围“A”的单元格中。 例如,当values_update为["a", "b", "c", "d"]时,这些值将被放入“A”至“D”列中。并且,当 values_update 为 ["a", "b", "c", "d", "e"] 时,这些值将放入“A”至“E”列中。

回答 1 投票 0

在远程机器人中处理多个用户的最佳方式是什么?

我正在为一个学生项目的活动制作一个电报机器人。有管理员、裁判员和选手。每个玩家都是一个团队的一部分,所以他们会有 Telegram 提供的 message.chat.id、一杯茶......

回答 1 投票 0

电报机器人获取民意调查结果

我正在开发一个 Telegram 机器人,它可以在群聊中发起民意调查并收集这些民意调查中的选票。 我已经使用 sendpoll API endpo 成功实现了民意调查的创建...

回答 1 投票 0

如何使用 telethon 在电报聊天中创建主题

`@loader.tds 类测试(加载器.模块): '''姓名''' 字符串={ “名称”:“测试”, } 异步 def client_ready(self, client, db): self.test_channel,...

回答 1 投票 0

我如何定期将特定消息转发到与 Telegram 中的 BOT 聊天?

我必须定期(每 15 分钟)向 BOT 发送修复消息。据我所知,我应该创建一个 BOT 来做到这一点。据我所知,BOT 无法向 Teleg 中的另一个 BOT 发送任何消息...

回答 1 投票 0

thread.join() 阻塞异步函数

我正在使用 python-telegram-bot 开发一个电报机器人。它就像一个股票筛选器,它会在每个给定的时间间隔分析市场并将结果发送给订阅该指标的用户......

回答 1 投票 0

NestJS Telegraf - 用于多个电报机器人的 Webhook

为单个机器人设置 Webhook 似乎可行,但一旦我添加另一个机器人,我就开始收到错误: 错误:监听 EADDRINUSE:地址已在使用 :::80 这是我设置的方法

回答 1 投票 0

为什么 Web 应用程序无法在 Telegram Android 中运行

我正在 Telegram 中开发一个网络应用程序。我正在用react js写前面的部分。已经将项目上传到 https 托管。该应用程序在 Telegram 桌面版上打开并运行良好...

回答 1 投票 0

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