Telegram 机器人:SyntaxError SyntaxError:当我想上传视频时 JSON 输入意外结束

问题描述 投票:0回答:1

我正在尝试做一个发送视频的电报机器人

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

javascript telegram-bot mjs
1个回答
0
投票

这是因为您试图在视频属性中包含本地文件路径。

您可以尝试以下代码:

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));
© www.soinside.com 2019 - 2024. All rights reserved.