我目前正在尝试构建一个代表用户将视频发布到 Twitter 的应用程序。
所以我目前有application-key
,application-secret
和 .access-token
access-secret
final TwitterTemplate twitterTemplate = new TwitterTemplate(
"application-key",
"application-secret",
"access-token",
"access-secret");
所以使用它我实际上可以发布一条只包含文本的推文。如果我想包含一个图像,我必须包含在spring-social-twitter的错误上发布的解决方法“解决方案”。这解决了图像,但视频仍然无法上传。
所以理性的想法是用邮递员尝试这个上传来“隔离”调用本身。
在上图中,我们可以看到授权过程。这对于我拨打的每个电话都是一样的。
有了这个 Auth POST
,https://api.twitter.com/1.1/statuses/update.json?status=hello
工作起来很简单。与 2 次图像调用相同。
POST
用于https://upload.twitter.com/1.1/media/upload.json?media_category=tweet_image
图片上传( body -> media : image )。POST
将https://api.twitter.com/1.1/statuses/update.json
media_id 与新推文合并。
但是当我发送这个时
,再次回到推特官方指南之后的视频
回应是
当请求 media_type 不包含时,/
将从带有 media_id 的高音扬声器返回有效响应,让我们调用它X
。所以我附加了一个视频(第二个命令)X
,然后完成了视频(第三个命令)X
。但正如预期的那样,响应是
因为从未提供过 media_type。另一方面,如果第二步的视频被推送为 base64 编码(并包括 base64 编码的标头),则响应为
到目前为止,无论我做了什么,我都无法发布视频。我什至使用 Postman 作为 twurl 的代理,并捕获了上传视频的 twurl请求。用我的更改了身份验证(因为需要重新创建随机数)并且请求无法上传视频!
一些注意事项:
- 凭据是最新的,并且可以从 twurl 工作。
- 视频有效,可以从 tweeter ui 和 twurl 上传命令上传。
- base64 转换使用 linux base64 工具通过管道传输到文件进行编码/解码,并验证大小相同。
如果需要任何其他澄清,请告诉我!
先感谢您