Bot API是一个基于HTTP的界面,专为那些热衷于为Telegram构建机器人的开发人员而设计,Telegram是一个带有文档API的即时消息应用程序。如果您正在编写电报机器人并且有关于Bot API的特定问题,请使用此标记。
实现从频道/群组和私人聊天上的 Telegram 机器人发送提醒的方法
我的 Telegram 机器人充当我最喜欢的球队比赛的日历。它应该从发布比赛日历的网站上抓取,将此日历放入本地 SQLite 数据库中并通过 com 访问它...
[Telegram.WebApp] 6.0 版本不支持更改滑动行为 我目前正在使用 Telegram
我一直在尝试在我的电报迷你应用程序中创建一个功能,用户可以通过单击图标来打开与其他用户的直接聊天。我尝试过的方法都打不开任何聊天。 我有...
我通过sendGame方法发送游戏: 电报::发送游戏([ 'chat_id' => $chatId, 'game_short_name' => '游戏' ]); 当玩家打开游戏时,底部会出现一个窗口
如何通过 Telegram Bot API 发送嵌入图像以及消息中的文本
使用 Telegram Bot API, 我知道可以通过 https://core.telegram.org/bots/api#sendphoto 发送图像 但是,如何将远程图像嵌入到格式化消息中? 消息...
我已将 Telegram 机器人部署到 GCP 云运行。即使实例缩放到 0,它也能正常工作 - 当 Telegram 调用时,实例启动并且机器人接收更新。 但有时,在非...
如何解决 TypeError: __init__() 缺少 1 个必需的位置参数:'update_queue'?
我想创建一个 Telegram 机器人来检查网站上是否有新帖子(目前出于测试目的每 15 秒检查一次)。如果是这样,它应该将包含帖子内容的消息发送到 Telegram 频道...
如何使用 Telegram API 将论坛主题的消息复制给用户?
我正在开发一个消息系统,我需要使用 Telegram API 将消息从论坛主题复制到用户。根据 Telegram 官方文档,在 CopyMessage 请求中有 o...
如何在 https 而不是 http 上运行 firebase(函数)模拟器?
有人知道是否有办法用 https 地址而不是默认的 http 来初始化 Firebase 函数(使用模拟器在本地调试)? 我正在尝试调试与 Telegram 机器人相关的
如何在 C# 中处理 TelegramBotClient 中的传入消息?
我正在尝试在 Visual Studio 中使用 C# 开发我的第一个 Telegram 机器人。我一直在关注教程,一切似乎都很顺利。但是,当我尝试使用
在电报上发送消息:“禁止:机器人不是超级群聊的成员”或“禁止:机器人不是频道聊天的成员”
我正在尝试在电报聊天中发送消息。 我希望电报设置只能通过官方 UI 完成,因为我希望它可能由最终用户完成。 这是我所做的电报设置: 我
我有一个运行良好的Java代码,它将本地图像从本地目录发送到Telegram用户: 公共类 TelegramBot 扩展 TelegramLongPollingBot { 公共 TelegramBot(...) {
我有一个基于免费 pythonanywhere 服务器的 Telegram 机器人。所以有什么问题?由于某种原因,执行有时会停止,并且控制台中没有显示任何错误 我需要我的b...
所以我正在尝试制作一个电报机器人,它可以发送带有标题的图像,但我希望每张照片都有不同的标题。我已经尝试了很长时间,这就是我所拥有的
我已经在我的代码中使用 https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getUpdates 几天了,今天随机测试时,我发现许多以前的条目丢失了
如何在 Telegram bot Web 应用程序的 Web 视图中连接到 Metamask 或 WalletConnect?
我正在为 Telegram 机器人开发一个 Web 应用程序,用户可以通过 Telegram 的 Web 视图进行交互。如何在 Telegram 的 Web 视图中可靠地启动与 Metamask 或 WalletConnect 的连接,特别是...
telegram bot webapp initData() 在 Google 应用程序脚本上为空,并且 MainButton.onClick 不起作用
telegram bot webapp initData() 在 Google 应用程序脚本上为空,并且 MainButton.onClick 不起作用。请帮忙。 ` <p>telegram bot webapp initData() 在 Google 应用程序脚本上为空,并且 MainButton.onClick 不起作用。请帮忙。 `</p> <pre><code><!DOCTYPE html> <html> <head> <script src="https://telegram.org/js/telegram-web-app.js"></script> <base target="_self"> </head> <body> <div class="container"> <h1>My Title</h1> <div class="row" id="tg"></div> <div class="row" > <button id="btn">all_inclusive</button> </div> </div> <script> window.Telegram.WebApp.ready(); window.Telegram.WebApp.expand(); // initData is empty object let initData = window.Telegram.WebApp.initData; // initDataUnsafe is empty object,too let initDataUnsafe = window.Telegram.WebApp.initDataUnsafe; window.Telegram.WebApp.MainButton.showProgress() window.Telegram.WebApp.MainButton.setText('submit').show().enable() window.Telegram.WebApp.MainButton.isProgressVisible = "true" //This Event is not working, Why? window.Telegram.WebApp.MainButton.onClick(() => {alert('submitted')}); window.document.getElementById('tg').innerHTML = JSON.stringify(window.Telegram.WebA </script> </body> </html> </code></pre> <p>`</p> <p>我想在telegram上构建一个web应用程序,但我可以获取用户的id</p> </question> <answer tick="false" vote="3"> <p>如果从自定义键盘打开 Web 应用程序,initData 将为空</p> <p>使用内联键盘</p> <p><a href="https://core.telegram.org/bots/webapps#webappinitdata" rel="nofollow noreferrer">https://core.telegram.org/bots/webapps#webappinitdata</a></p> </answer> <answer tick="false" vote="1"> <p>我知道这个问题可能已经无关紧要,但为了以防万一,我将在这里留下我的答案。 当您从自定义键盘打开应用程序时,InitData 可能为空,因此最好使用内置键盘。 当应用程序中的用户按下顶部的更新按钮时,initData 也可能会丢失。 之后,无论应用程序如何打开,initData 也为空。 我希望我对你有帮助。 另外,如果您正在寻找如何检查用户的有效性,即检查 window.Telegram.WebApp.initData 字段,我可以推荐 <a href="https://github.com/CrazyTapok-bit/tgWebValid" rel="nofollow noreferrer">TgWebValid</a> 包,它将完美且非常轻松地处理这个问题。 我给你留下链接</p> </answer> <answer tick="false" vote="0"> <p>使用内联键盘。</p> <p>例如:</p> <pre><code>bot.start((ctx) => ctx.reply('Welcome!!!', { reply_markup: { inline_keyboard: [ [ { text: "Start", web_app: { url: `${domain}/#/` } }, { text: "About", callback_data: "about_us" }] ], resize_keyboard: true, one_time_keyboard: true } })); </code></pre> <p>我可以获得 initData:</p> <p><a href="https://i.sstatic.net/EazjMdZP.png" rel="nofollow noreferrer">初始化数据</a></p> </answer> </body></html>
我需要将相册打包发送到电报机器人。照片数量事先未知。 我写了代码: 列表streamArray = 新列表 我需要将相册捆绑发送到电报机器人。照片数量事先未知。 我写了代码: List<IAlbumInputMedia> streamArray = new List<IAlbumInputMedia> {}; foreach (var formFile in files) { if (formFile.Length > 0) { using var stream = formFile.OpenReadStream(); streamArray.Add(stream); // there is a mistake here. cannot convert to System.IO.Stream to Telegram.Bot.Types.IAlbumInputmedia //await clientTg.SendPhotoAsync(groupId,stream); // it works fine } } await clientTg.SendMediaGroupAsync(groupId, streamArray); 我无法将 stream 添加到 List arrayStream,错误“无法转换为 System.IO.Stream 到 Telegram.Bot.Types.IAlbumInputmedia” 在单个实例中,流通常通过 SendPhotoAsync 方法发送,并在代码中注释掉。 如何转换这些类型并发送合影? 根据文档: Message[] messages = await botClient.SendMediaGroupAsync( chatId: chatId, media: new IAlbumInputMedia[] { new InputMediaPhoto("https://cdn.pixabay.com/photo/2017/06/20/19/22/fuchs-2424369_640.jpg"), new InputMediaPhoto("https://cdn.pixabay.com/photo/2017/04/11/21/34/giraffe-2222908_640.jpg"), } ); 您必须显式设置文件类型。 在你的情况下,它会像: streamArray.Add(new InputMediaPhoto(stream, $"file{DateTime.Now.ToString("s").Replace(":", ".")}") @Vadim 的回答不起作用,可能是因为在这种情况下我不能Add。但他们的回答确实把我推向了正确的方向。我决定为程序的不同分支的不同数量的照片编写代码。 if (files.Count == 2) // <<<< 2 photos { await using var stream1 = files[0].OpenReadStream(); await using var stream2 = files[1].OpenReadStream(); IAlbumInputMedia[] streamArray = { new InputMediaPhoto(new InputMedia(stream1, "111")) { Caption = "Cap 111" }, new InputMediaPhoto(new InputMedia(stream2, "222")) { Caption = "Cap 222" }, }; await clientTg.SendMediaGroupAsync(groupId, streamArray); } 我不确定我是否正确使用了await using,但至少它有效。 // This Correct One string[] files = Directory.GetFiles(photofolder); List<IAlbumInputMedia> mediaItems = new List<IAlbumInputMedia>(); // Loop through each file path and create an InputMediaPhoto for each file foreach (string singleFilePath in files) { // Get the safe file name from the file path string safeFileName = Path.GetFileName(singleFilePath); // Open a file stream for the current file var localPhotoStream = new FileStream(singleFilePath, FileMode.Open, FileAccess.Read); // Create an InputMediaPhoto object and add it to the list var inputMedia = new InputMediaPhoto(new InputMedia(localPhotoStream, safeFileName)) { Caption = $"Caption for {safeFileName}" // Example caption, customize as needed }; mediaItems.Add(inputMedia); } // Assuming botClient is initialized with your Telegram Bot API token botClient.SendMediaGroupAsync( chatId: chatId, media: mediaItems);
我有一个机器人,它发送带有两个按钮的消息:添加和删除(例如)。这些按钮可打开 Telegram Web 应用程序,这是我使用 @botfather /newapp 添加的,我在其中放置了指向我的网站的链接
如何在 telegraf.js 上的电报机器人中实现发送一条消息
告诉我为什么时事通讯对我的机器人用户不起作用? 所有用户及其id都记录在bd中 const { Telegraf、标记、场景、会话 } = require('telegraf'); const bot = new Telegraf(pro...