Telegram Bot 如何直接发送 HTML 文件?
Telegram Bot how to send HTML file directly?
我使用 HTML 创建了一个游戏,现在我正在尝试将其导入我的 js 文件,然后发送给用户。
到目前为止,这是我的代码
const { Telegraf } = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN);
const test = require('./index.html');
bot.hears('?', ctx => {
// console.log(ctx.from)
let msg = `Spin the wheel`;
ctx.deleteMessage();
bot.telegram.sendMessage(ctx.chat.id, msg, {
reply_markup: {
inline_keyboard: [
[{
text: "SPIN",
callback_data: 'wheeloffortune'
}
],
]
}
})
})
bot.action('wheeloffortune', ctx => {
bot.telegram.sendMessage(ctx.chat.id, test, {parse_mode: 'HTML'});
})
但是我收到了这个错误
<!DOCTYPE html>
^
SyntaxError: Unexpected token '<'
如有任何建议,我们将不胜感激
如 Telegram BOT API 的 documentation 所述,html
类型的 parse_mode
仅支持少数标签。因此,您无法将游戏的 html 文件发送到 parse_mode
设置为 html
的用户的聊天室。
文档是这样说的:
要使用此模式,请在 parse_mode 字段中传递 HTML。目前支持以下标签:
<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<u>underline</u>, <ins>underline</ins>
<s>strikethrough</s>, <strike>strikethrough</strike>, <del>strikethrough</del>
<span class="tg-spoiler">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>
<b>bold <i>italic bold <s>italic bold strikethrough <span class="tg-spoiler">italic bold strikethrough spoiler</span></s> <u>underline italic bold</u></i> bold</b>
<a href="http://www.example.com/">inline URL</a>
<a href="tg://user?id=123456789">inline mention of a user</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
<pre><code class="language-python">pre-formatted fixed-width code block written in the Python programming language</code></pre>
- 目前仅支持上述标签。
- 所有不属于标签或 HTML 实体的 <、> 和 & 符号必须替换为相应的 HTML 实体(< 与 <、> 与 > 和 &与 &).
- 支持所有数字 HTML 实体。
- API 目前仅支持以下命名的 HTML 实体:<、>、& 和“.
- 使用嵌套的前置和代码标签,为前置实体定义编程语言。
- 无法为独立代码标签指定编程语言。
我使用 HTML 创建了一个游戏,现在我正在尝试将其导入我的 js 文件,然后发送给用户。
到目前为止,这是我的代码
const { Telegraf } = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN);
const test = require('./index.html');
bot.hears('?', ctx => {
// console.log(ctx.from)
let msg = `Spin the wheel`;
ctx.deleteMessage();
bot.telegram.sendMessage(ctx.chat.id, msg, {
reply_markup: {
inline_keyboard: [
[{
text: "SPIN",
callback_data: 'wheeloffortune'
}
],
]
}
})
})
bot.action('wheeloffortune', ctx => {
bot.telegram.sendMessage(ctx.chat.id, test, {parse_mode: 'HTML'});
})
但是我收到了这个错误
<!DOCTYPE html>
^
SyntaxError: Unexpected token '<'
如有任何建议,我们将不胜感激
如 Telegram BOT API 的 documentation 所述,html
类型的 parse_mode
仅支持少数标签。因此,您无法将游戏的 html 文件发送到 parse_mode
设置为 html
的用户的聊天室。
文档是这样说的:
要使用此模式,请在 parse_mode 字段中传递 HTML。目前支持以下标签:
<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<u>underline</u>, <ins>underline</ins>
<s>strikethrough</s>, <strike>strikethrough</strike>, <del>strikethrough</del>
<span class="tg-spoiler">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>
<b>bold <i>italic bold <s>italic bold strikethrough <span class="tg-spoiler">italic bold strikethrough spoiler</span></s> <u>underline italic bold</u></i> bold</b>
<a href="http://www.example.com/">inline URL</a>
<a href="tg://user?id=123456789">inline mention of a user</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
<pre><code class="language-python">pre-formatted fixed-width code block written in the Python programming language</code></pre>
- 目前仅支持上述标签。
- 所有不属于标签或 HTML 实体的 <、> 和 & 符号必须替换为相应的 HTML 实体(< 与 <、> 与 > 和 &与 &).
- 支持所有数字 HTML 实体。
- API 目前仅支持以下命名的 HTML 实体:<、>、& 和“.
- 使用嵌套的前置和代码标签,为前置实体定义编程语言。
- 无法为独立代码标签指定编程语言。