1

我目前正在尝试构建一个代表用户将视频发布到 Twitter 的应用程序。

所以我目前有application-key,application-secret和 .access-tokenaccess-secret

final TwitterTemplate twitterTemplate = new TwitterTemplate(
    "application-key",
    "application-secret",
    "access-token",
    "access-secret");

所以使用它我实际上可以发布一条包含文本的推文。如果我想包含一个图像,我必须包含在spring-social-twitter的错误上发布的解决方法“解决方案”。这解决了图像,但视频仍然无法上传。

所以理性的想法是用邮递员尝试这个上传来“隔离”调用本身。

邮递员的Auth1

在上图中,我们可以看到授权过程。这对于我拨打的每个电话都是一样的。

有了这个 Auth POSThttps://api.twitter.com/1.1/statuses/update.json?status=hello工作起来很简单。与 2 次图像调用相同。

  1. POST用于https://upload.twitter.com/1.1/media/upload.json?media_category=tweet_image图片上传( body -> media : image )。
  2. POSThttps://api.twitter.com/1.1/statuses/update.jsonmedia_id 与新推文合并。

但是当我发送这个时 ,再次回到推特官方指南之后的视频视频初始化请求

回应是

无法验证响应

当请求 media_type 不包含时,/将从带有 media_id 的高音扬声器返回有效响应,让我们调用它X。所以我附加了一个视频(第二个命令)X,然后完成了视频(第三个命令)X。但正如预期的那样,响应是

无法识别的媒体响应

因为从未提供过 media_type。另一方面,如果第二步的视频被推送为 base64 编码(并包括 base64 编码的标头),则响应为

尺寸无效

到目前为止,无论我做了什么,我都无法发布视频。我什至使用 Postman 作为 twurl 的代理,并捕获了上传视频的 twurl请求。用我的更改了身份验证(因为需要重新创建随机数)并且请求无法上传视频!

一些注意事项:

  1. 凭据是最新的,并且可以从 twurl 工作。
  2. 视频有效,可以从 tweeter ui 和 twurl 上传命令上传。
  3. base64 转换使用 linux base64 工具通过管道传输到文件进行编码/解码,并验证大小相同。

如果需要任何其他澄清,请告诉我!

先感谢您

4

1 回答 1

0

我知道已经晚了,但如果有人有同样的问题,要在 Twitter 上上传视频,你必须使用 chunked-media-upload 方法。

这是参考 https://developer.twitter.com/en/docs/media/upload-media/uploading-media/chunked-media-upload

于 2020-05-20T06:20:20.630 回答