我正在尝试做一个发送视频的电报机器人
import fetch from 'node-fetch'
fetch("https://api.telegram.org/bot<api>/sendVideo", {
method: "POST",
headers: {
"Content-Type": "multipart/form-data",
},
body: JSON.stringify({
chat_id: <chat.id>,
video: "C:\\output\\output.webm",
caption: "test"
})
}).then(res => res.json()).then(json => console.log(json));
你好,我正在制作一个电报机器人,可以按需发送一些视频,但我在将视频上传到电报服务器时遇到问题,你能帮助我吗?谢谢
我有这个错误
Uncaught SyntaxError SyntaxError: processTicksAndRejections (undefined:96:5) 处的 json (undefined:149:15) 处的 JSON 输入意外结束。不可能的 d'envoyer 'variables' 进程退出,代码为 1
这是因为您试图在视频属性中包含本地文件路径。
您可以尝试以下代码:
const fetch = require('node-fetch');
const fs = require('fs');
const token = '<YOUR_BOT_TOKEN>';
const chatId = '<CHAT_ID>';
const video = fs.readFileSync('<PATH_TO_VIDEO_FILE>');
fetch(`https://api.telegram.org/bot${token}/sendVideo`, {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
},
body: JSON.stringify({
chat_id: chatId,
video: {
value: video,
options: {
filename: 'video.mp4',
contentType: 'video/mp4',
},
},
caption: 'test',
}),
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch((err) => console.error(err));