You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Twitter API代持有的其他账号发布推文?

用自有开发者应用代其他账号发推文的实操方案

一、先搞定正确的OAuth授权链接(避免报错)

Twitter现在强制要求用OAuth 2.0授权码流程+PKCE,别用旧的OAuth 1.0a,容易踩坑。正确的授权链接参数必须包含:

  • client_id:你的开发者应用里的Client ID(不是API Key,别搞混)
  • redirect_uri:必须是你在开发者后台已经验证并添加的回调地址(本地测试推荐用http://localhost:3000/callback)
  • response_type=code:固定值
  • scope=tweet.write offline.access:tweet.write是发推文的核心权限,offline.access用来获取刷新令牌,避免每次都要重新授权
  • code_challenge:先生成32位随机字符串,用SHA-256哈希后转成Base64 URL编码(别直接用原始字符串)
  • code_challenge_method=S256:固定值,对应上面的哈希方式

常见错误:redirect_uri没在后台配置、用API Key代替Client ID、漏加offline.access权限,都会导致授权链接报错。

二、用授权码换取访问令牌

当你用目标账号(要代发的那个)点击授权链接、同意权限后,会跳转到你设置的redirect_uri,URL里的code参数就是授权码。接下来用POST请求调用令牌接口,参数用application/x-www-form-urlencoded格式:

  • client_id:同上
  • code:刚拿到的授权码
  • redirect_uri:和授权链接里的完全一致
  • grant_type=authorization_code:固定值
  • code_verifier:生成code_challenge时用的原始随机字符串(不是哈希后的)

成功后会返回:access_token(当前可用的访问令牌)、refresh_token(用来刷新过期的access_token)、expires_in(令牌有效期约2小时)。

三、代发推文的API授权方式

调用发推文的API(POST /2/tweets)时,直接在请求头里加授权信息:

Authorization: Bearer {你的access_token}

请求体用JSON格式,示例:

{"text": "这是通过API代发的测试推文"}

如果access_token过期,用refresh_token调用令牌接口(把grant_type换成refresh_token),就能拿到新的access_token,不用再让目标账号重新授权。

四、针对自有账号的简化提示

因为两个账号都是你自己的,授权时直接用目标账号登录同意就行,不用走第三方用户授权的复杂流程。另外要确保开发者后台的应用已经开启tweet.write权限(在「Permissions and features」里申请,自有账号一般秒通过)。

内容的提问来源于stack exchange,提问作者rulebreaker99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:52:48