我可以使用 Twitter 的 API 发布图像/媒体吗

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

过去几天我一直在寻找有关此主题的信息。 我希望能够使用我的 Twitter 机器人发布包含文本和一张图像的消息。我收到一条错误消息:

ApiResponseError:请求失败 代码 403 - 您当前可以访问子集和有限的 v1.1 仅端点(例如媒体发布、0auth)。如果您需要访问此 端点,您可能需要不同的访问级别。您可以了解更多 这里:https://developer.twitter.com/en/portal/product(Twitter 代码 第453章)

因此,一方面,我收到的消息似乎是说我必须付费,因为我没有正确的访问级别,但另一方面,官方文档似乎说免费层允许上传图像( https://developer.x.com/en/docs/x-api)。

对 v2 帖子发布和媒体上传端点的速率限制访问

那么有人能够使用免费套餐发布图片吗?我的 Twitter 机器人是用 NodeJS 编写的。

node.js twitter
1个回答
0
投票

我在这里留下答案,而不是在评论中,因为我相信这是你的问题,但我能做的最好的就是猜测,因为我目前无法访问 X 的 api 来确认。鉴于你的错误说(粗体陈述是我自己的):

ApiResponseError:请求失败,代码为 403 - 您当前只能访问子集和有限的 v1.1 端点(例如 media post、0auth)。如果您需要访问此端点,您可能需要不同的访问级别。您可以在这里了解更多信息:https://developer.twitter.com/en/portal/product(Twitter 代码 453)

请注意它如何表示您可以从 v1.1 端点的有限子集访问媒体帖子(可能是因为您处于免费套餐)。所以我也相信它说:

对 v2 帖子发布和媒体上传端点的速率限制访问

帖子发布必须来自 v2 API,但由于我在其他地方找不到媒体上传,并且由于上述错误消息,我相信媒体上传端点来自 v1.1 API,所以我再次简单地给出我最好的猜测。

所以我假设您当前正在使用 v1.1 api 来尝试创建推文,这就是导致问题的原因?您应该使用 API v1.1 中的

媒体上传(因为我没有看到它的 v2),然后从该 的响应中获取媒体 id,然后 使用该媒体 id,就像使用 一样v2 tweet post api 如示例存储库中所述:

const token = { key: "<<YOUR OAUTH TOKEN HERE>>", secret: "<<YOUR OAUTH TOKEN SECRET HERE>>" }; const authHeader = oauth.toHeader(oauth.authorize({ url: "https://api.x.com/2/tweets", method: 'POST' }, token)); const req = await got.post("https://api.x.com/2/tweets", { json: { tweet: "<<YOUR TWEET TEXT HERE>>", media: {"media_ids": ["<<YOUR MEDIA ID HERE>>"]} }, responseType: 'json', headers: { Authorization: authHeader["Authorization"], 'user-agent': "v2CreateTweetJS", 'content-type': "application/json", 'accept': "application/json" } }); console.log(req.body);
请注意,上面的内容只会完成您需要做的后半部分。您需要从我上面链接的 

media upload v1.1 api 的文档中找出前半部分。

© www.soinside.com 2019 - 2024. All rights reserved.