telegram-bot 相关问题

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

实现从频道/群组和私人聊天上的 Telegram 机器人发送提醒的方法

我的 Telegram 机器人充当我最喜欢的球队比赛的日历。它应该从发布比赛日历的网站上抓取,将此日历放入本地 SQLite 数据库中并通过 com 访问它...

回答 1 投票 0

如何更新 Telegram BOT API 版本?

[Telegram.WebApp] 6.0 版本不支持更改滑动行为 我目前正在使用 Telegram

回答 1 投票 0

从 Telegram Mini 应用程序中打开直接聊天

我一直在尝试在我的电报迷你应用程序中创建一个功能,用户可以通过单击图标来打开与其他用户的直接聊天。我尝试过的方法都打不开任何聊天。 我有...

回答 1 投票 0

如何在 Telegram 中打开游戏时禁用聊天选择窗口?

我通过sendGame方法发送游戏: 电报::发送游戏([ 'chat_id' => $chatId, 'game_short_name' => '游戏' ]); 当玩家打开游戏时,底部会出现一个窗口

回答 1 投票 0

如何通过 Telegram Bot API 发送嵌入图像以及消息中的文本

使用 Telegram Bot API, 我知道可以通过 https://core.telegram.org/bots/api#sendphoto 发送图像 但是,如何将远程图像嵌入到格式化消息中? 消息...

回答 8 投票 0

Telegram 停止发送 webhook 更新

我已将 Telegram 机器人部署到 GCP 云运行。即使实例缩放到 0,它也能正常工作 - 当 Telegram 调用时,实例启动并且机器人接收更新。 但有时,在非...

回答 1 投票 0

如何解决 TypeError: __init__() 缺少 1 个必需的位置参数:'update_queue'?

我想创建一个 Telegram 机器人来检查网站上是否有新帖子(目前出于测试目的每 15 秒检查一次)。如果是这样,它应该将包含帖子内容的消息发送到 Telegram 频道...

回答 2 投票 0

如何使用 Telegram API 将论坛主题的消息复制给用户?

我正在开发一个消息系统,我需要使用 Telegram API 将消息从论坛主题复制到用户。根据 Telegram 官方文档,在 CopyMessage 请求中有 o...

回答 1 投票 0

如何在 https 而不是 http 上运行 firebase(函数)模拟器?

有人知道是否有办法用 https 地址而不是默认的 http 来初始化 Firebase 函数(使用模拟器在本地调试)? 我正在尝试调试与 Telegram 机器人相关的

回答 2 投票 0

如何在 C# 中处理 TelegramBotClient 中的传入消息?

我正在尝试在 Visual Studio 中使用 C# 开发我的第一个 Telegram 机器人。我一直在关注教程,一切似乎都很顺利。但是,当我尝试使用

回答 1 投票 0

在电报上发送消息:“禁止:机器人不是超级群聊的成员”或“禁止:机器人不是频道聊天的成员”

我正在尝试在电报聊天中发送消息。 我希望电报设置只能通过官方 UI 完成,因为我希望它可能由最终用户完成。 这是我所做的电报设置: 我

回答 3 投票 0

将图像作为输入流而不是文件发送到电报

我有一个运行良好的Java代码,它将本地图像从本地目录发送到Telegram用户: 公共类 TelegramBot 扩展 TelegramLongPollingBot { 公共 TelegramBot(...) {

回答 1 投票 0

如何在出错时自动重新运行 python 应用程序?

我有一个基于免费 pythonanywhere 服务器的 Telegram 机器人。所以有什么问题?由于某种原因,执行有时会停止,并且控制台中没有显示任何错误 我需要我的b...

回答 2 投票 0

如何发送带有不同标题的不同图像电报机器人

所以我正在尝试制作一个电报机器人,它可以发送带有标题的图像,但我希望每张照片都有不同的标题。我已经尝试了很长时间,这就是我所拥有的

回答 1 投票 0

telegram getUpdates() 有限制吗?

我已经在我的代码中使用 https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getUpdates 几天了,今天随机测试时,我发现许多以前的条目丢失了

回答 1 投票 0

如何在 Telegram bot Web 应用程序的 Web 视图中连接到 Metamask 或 WalletConnect?

我正在为 Telegram 机器人开发一个 Web 应用程序,用户可以通过 Telegram 的 Web 视图进行交互。如何在 Telegram 的 Web 视图中可靠地启动与 Metamask 或 WalletConnect 的连接,特别是...

回答 1 投票 0

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>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;script src=&#34;https://telegram.org/js/telegram-web-app.js&#34;&gt;&lt;/script&gt; &lt;base target=&#34;_self&#34;&gt; &lt;/head&gt; &lt;body&gt; &lt;div class=&#34;container&#34;&gt; &lt;h1&gt;My Title&lt;/h1&gt; &lt;div class=&#34;row&#34; id=&#34;tg&#34;&gt;&lt;/div&gt; &lt;div class=&#34;row&#34; &gt; &lt;button id=&#34;btn&#34;&gt;all_inclusive&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; &lt;script&gt; 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(&#39;submit&#39;).show().enable() window.Telegram.WebApp.MainButton.isProgressVisible = &#34;true&#34; //This Event is not working, Why? window.Telegram.WebApp.MainButton.onClick(() =&gt; {alert(&#39;submitted&#39;)}); window.document.getElementById(&#39;tg&#39;).innerHTML = JSON.stringify(window.Telegram.WebA &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; </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) =&gt; ctx.reply(&#39;Welcome!!!&#39;, { reply_markup: { inline_keyboard: [ [ { text: &#34;Start&#34;, web_app: { url: `${domain}/#/` } }, { text: &#34;About&#34;, callback_data: &#34;about_us&#34; }] ], 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>

回答 0 投票 0

使用 SendMediaGroupAsync 方法 c#

我需要将相册打包发送到电报机器人。照片数量事先未知。 我写了代码: 列表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);

回答 3 投票 0

如何向 Telegram Web App 传递参数

我有一个机器人,它发送带有两个按钮的消息:添加和删除(例如)。这些按钮可打开 Telegram Web 应用程序,这是我使用 @botfather /newapp 添加的,我在其中放置了指向我的网站的链接

回答 2 投票 0

如何在 telegraf.js 上的电报机器人中实现发送一条消息

告诉我为什么时事通讯对我的机器人用户不起作用? 所有用户及其id都记录在bd中 const { Telegraf、标记、场景、会话 } = require('telegraf'); const bot = new Telegraf(pro...

回答 1 投票 0

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