无法使用 Web Video Kit API 将视频发布到 Tiktok

2024-03-30

我正在尝试使用此端点将视频上传到 Tiktok:

https://open-api.tiktok.com/share/video/upload/ https://open-api.tiktok.com/share/video/upload/

按照官方文档:https://developers.tiktok.com/doc/web-video-kit-with-web https://developers.tiktok.com/doc/web-video-kit-with-web

(成功通过 Tiktok 进行身份验证并使用 Login Kit API 获取访问令牌后)。 我收到一条表明成功的响应(error_code=0 且 share_id 非空),但是没有上传任何内容,并且我的 Tiktok 应用程序的回调 URL 似乎没有被任何状态更新触发。

我尝试过从几个不同的环境访问 API - Node.js 运行时(使用 Axios)、来自 2 台不同机器的 cURL 请求(都得到上述结果)以及使用 Fetch 从我的前端代码(这个让我CORS 错误)。下面的代码片段。

我将不胜感激任何帮助,因为我不知道接下来要尝试什么。此外,如果除了我链接的文档或在线资源之外还有任何其他文档或在线资源可能会有所帮助,那么任何此类链接都会很棒。

注意:我确保我的测试视频满足文档中提到的限制。

我的 Node.js 代码:

    const url = `https://open-api.tiktok.com/share/video/upload?open_id=${openId}&access_token=${accessToken}`;
const data = new FormData();
data.append('video', fs.createReadStream(path.join(os.tmpdir(), 'test.mp4')));
await axios.post(url, data, {
  headers: data.getHeaders()
});

卷曲请求:

curl --location --request POST 'https://open-api.tiktok.com/share/video/upload?open_id=<open_id>&access_token=<access_token>' --form 'video=@"/path/to/video.mp4"'

响应负载(对于 cURL 和 Node.JS 请求):

{"data":{"err_code":0,"error_code":0,"share_id":"video.7031619168818448385.CGdXCmaC"},"extra":{"error_detail":"","logid":"2021111721133201024513311411A971D3"}}

前端代码(获取,在 Location 标头中使用相同的 Tiktok URL(/share/video/upload...)获取 307 响应 - 导致 CORS 错误):

const formData = new FormData();
formData.append('video', selectedFile);

const requestOptions = {
  method: 'POST',
  body: formData,
  redirect: 'follow'
};

const URL = `https://open-api.tiktok.com/share/video/upload?access_token=${accessToken}&open_id=${openId}`;

fetch(URL, requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.log('error', error));

您需要下载 TikTok 应用程序,然后发布通过 API 上传的视频。

触发视频上传的用户应该收到通知 视频上传成功后,用户可以在TikTok应用程序上 在应用程序上发布视频。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Web Video Kit API 将视频发布到 Tiktok 的相关文章

随机推荐

  • Delphi:解析未知结构的记录

    有没有一种方法可以获取记录并以编程方式遍历其所有字段 而无需显式执行 Record somerfield 我想要做的是一个将记录保存 加载为 INI 文件的通用函数 以便我可以从记录结构中添加或删除字段 而无需每次在记录中删除或添加字段时重
  • 是否可以在react项目中使用dotenv?

    我正在尝试设置一些环境变量 用于对 dev prod 端点进行 API 调用 密钥取决于 dev prod 等 我想知道使用 dotenv 是否有效 我已经安装了 dotenv 并且正在使用 webpack 我的 webpack 入口是ma
  • 在 Python 数据框中获取一天的一部分(早上、下午、晚上、夜晚)

    这是我的数据框 我需要根据行值的时间创建一个新列 早上 下午 晚上 晚上 这是我的代码 if prods hour lt 4 prods hour gt 8 prods session Early Morning elif prods ho
  • 一个应用程序具有多个 component.js:如何加载共享模块?

    我们有一个 SAPUI5 应用程序 其中定义了多个组件 即多个 Component js 文件 每个组件都在各自的子文件夹中作为应用程序根目录的直接子文件夹 下图显示了项目结构 组件 1 指定为com test component1 分量
  • Ecto 构建多个关联

    目前正在使用 Ecto Postgres 从事 Phoenix 项目 创建评论时 作为评论belongs to用户和文章 有没有一种方法可以构建多个关联来生成一个变更集 像这样的伪代码 comment changeset build ass
  • 将外部 png 加载到 AS2 swf 中,该 AS2 swf 加载到 AS3 swf 包装器中

    我有一个 Wrapper SWF 可以加载一系列 AS2 电影 每个 AS2 影片都会加载一系列 png 文件 AS3 wrapper swf gt AS2 1 swf gt image 1 png gt image 2 png gt AS
  • sqlalchemy - query.all() - 要字典的元组列表

    这是我的电话 session query User username User first name User last name all 它返回 myUsername myFirstname myLastname 我希望其格式如下 use
  • 将新管理员添加到活动管理员

    我正在为我的用户使用设备 我最近安装了导轨活跃管理宝石 http activeadmin info 一切都很顺利 但是我不知道如何添加新的管理员用户 我可以看到活跃管理员创建了一个admin user数据库中的表与用户 电子邮件受保护 cd
  • 数据表复选框没有获得价值

    长话短说 所以我尝试使用 POST 来获取我的 Flask 模板中的复选框值 但是 我在模板中的数据表 数据表按钮 中使用了一些动态表 这些数据表导致我的发布请求不起作用 在不使用数据表的情况下 如果它只是一个很长的常规表 那么我的发布请求
  • iphone开发-GDB错误信号EXC_BAD_ACCESS

    我收到信号错误EXC BAD ACCESS当尝试从 randomBallPick 方法检索返回输出时 我可能做错了 NSString temp self randomBallPick upBall1 image UIImage imageN
  • 当 btoa 被弃用时,如何在 ReactJS 中编码 Base 64 字符串?

    我正在使用一个 API 它要求我授权我的客户端 ID 和客户端密钥 我尝试使用 btoa 方法 但它说它已被弃用 这是我到目前为止所尝试过的 授权 基本 btoa ClientID ClientSecret 这似乎给出了相同的结果btoa
  • 如何使用 javascript 或 jQuery 处理多个 HTML 中的通用代码

    我有一个应用程序 其中有近 30 个 html 它们共享一些通用代码 如果我对其进行任何更改 我需要在每个页面上更改它 下面是我在所有页面上使用的代码片段 div ul li class current a href html a li l
  • 使用activestorage的直接上传上传到S3时如何指定前缀?

    使用标准 S3 配置 AWS ACCESS KEY ID AWS ID AWS BUCKET bucket name AWS REGION region AWS SECRET ACCESS KEY secret 我可以使用以下 Rails
  • 如何编写在现代 x64 处理器上高效运行的自修改代码?

    我正在尝试加速可变位宽整数压缩方案 并且我对动态生成和执行汇编代码感兴趣 目前 大量时间花费在错误预测的间接分支上 并且根据发现的一系列位宽生成代码似乎是避免这种损失的唯一方法 一般技术被称为 子例程线程 或 调用线程 尽管这也有其他定义
  • 我在什么上下文中运行 C#?

    我想知道 当我有这样的代码时 lock obj MyCode MyAgent Can MyAgent包含代码认识到它正在运行lock block 关于什么 for int i 0 i lt 5 i MyCode MyAgent Can My
  • 类抛出异常[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 如何在 Symfony2 中创建 IP 黑名单?

    是的 我知道有食谱中的选民教程 http symfony com doc 2 0 cookbook security voters html 但我正在寻找稍微不同的东西 我需要两层不同的黑名单 拒绝某些IP访问整个网站 拒绝某些IP登录 我
  • For 循环中的 DispatchGroup

    因此 我花了一些时间尝试让 DispatchGroup 在长时间异步操作完成之前阻止 for 循环迭代 我发现的大多数示例都相当简单明了 但我似乎无法让我的简单测试用例按我的预期工作 let group DispatchGroup for
  • Fabric.js:如何将自定义尺寸设置为 Text 或 IText?

    我正在使用优秀的 Fabric js 在画布上绘制一些文本 当我为 IText 对象指定自定义大小 假设为 200x200 矩形 时 Farbric js 似乎强制对象的宽度和高度适合文本 var t new fabric IText He
  • 无法使用 Web Video Kit API 将视频发布到 Tiktok

    我正在尝试使用此端点将视频上传到 Tiktok https open api tiktok com share video upload https open api tiktok com share video upload 按照官方文档