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

使用Twitter API V2发布推文时遭遇401未授权错误求助

解决Twitter API V2 401未授权问题

简化后的正确代码

你的代码引入了不必要的依赖(oauth-1.0a、crypto、node-fetch),twitter-api-v2库已经内置了OAuth1a的签名处理,手动实现反而容易出错。以下是简化后的可运行代码:

require('dotenv').config({ path: __dirname + '/.env' }); 

const { TwitterApi } = require('twitter-api-v2');

// 直接使用凭证初始化客户端,库会自动处理OAuth1a认证
const client = new TwitterApi({
  appKey: process.env.TWITTER_CONSUMER_KEY,
  appSecret: process.env.TWITTER_CONSUMER_SECRET,
  accessToken: process.env.TWITTER_ACCESS_TOKEN,
  accessSecret: process.env.TWITTER_ACCESS_TOKEN_SECRET,
});

const tweet = async () => {
  try {
    const response = await client.v2.tweet('Hello, world!');
    console.log('Tweet successful:', response.data);
  } catch (error) {
    console.error('Tweet failed:', error);
  }
};

tweet();

关键排查步骤

  • 验证凭证准确性
    确认.env文件中的四个参数完全匹配Twitter开发者后台的对应值:

    • TWITTER_CONSUMER_KEY(API Key)
    • TWITTER_CONSUMER_SECRET(API Secret)
    • TWITTER_ACCESS_TOKEN
    • TWITTER_ACCESS_TOKEN_SECRET
      注意不要包含空格、换行或多余字符,可临时在代码中打印变量值确认加载正常。
  • 检查API权限配置
    进入Twitter开发者后台的项目页面:

    1. 确保App的权限为Read and Write(默认可能是只读),权限修改后需重新生成访问令牌(旧令牌会失效)。
    2. 确认V2 API的写入权限已开启,V2与V1.1的权限是分开配置的。
  • 确认.env文件路径
    检查.env文件是否与脚本在同一目录,若脚本在子目录,需调整dotenv.config的路径参数(如../.env)。

  • 排查账号与调用限制

    • 确认你的Twitter账号未被限制发布内容(如冻结、限流)。
    • 在开发者后台的Usage页面查看API调用量,确认未超出限额。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:10:25