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

如何用Google Apps Script调用Twitter API获取指定用户粉丝列表?

解决Twitter API v2获取粉丝列表的401未授权问题

你的代码存在三个核心问题导致401错误,以下是具体修正方案:

问题分析

  • API端点错误:Twitter API v2的/users/{id}/followers接口要求传入用户ID,不能直接使用用户名调用。
  • 认证方式错误:Twitter API v2需要OAuth 1.0a签名认证,你直接把密钥放入headers的方式不符合要求。
  • Headers格式错误:未按照OAuth 1.0a规范生成合法的认证头,API无法识别你的身份。

修正步骤

1. 添加OAuth1库到Google Apps Script项目

打开脚本编辑器,依次点击「资源」→「库」,输入库ID 1CXDCY5sqT9ph64fFwSzVtXnbjpSfWdRymafDrtIZ7Z_hwysTY7IIhi7s,选择最新版本后点击添加。

2. 修正后的完整代码

function getFollowers() {
  // 替换为你的Twitter开发者密钥
  const twitterKeys = {
    consumerKey: '你的Consumer Key',
    consumerSecret: '你的Consumer Secret',
    accessToken: '你的Access Token',
    accessTokenSecret: '你的Access Token Secret'
  };

  const targetUsername = '目标用户名'; // 例如"Twitter"
  const oAuthService = OAuth1.createService('Twitter')
    .setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
    .setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
    .setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
    .setConsumerKey(twitterKeys.consumerKey)
    .setConsumerSecret(twitterKeys.consumerSecret)
    .setAccessToken(twitterKeys.accessToken, twitterKeys.accessTokenSecret);

  // 第一步:通过用户名获取用户ID
  const userIdUrl = `https://api.twitter.com/2/users/by/username/${targetUsername}?user.fields=id`;
  const userIdResponse = UrlFetchApp.fetch(userIdUrl, {
    headers: {
      Authorization: oAuthService.getAuthorizationHeader(userIdUrl, 'GET')
    },
    muteHttpExceptions: true
  });
  const userIdData = JSON.parse(userIdResponse.getContentText());
  if (userIdData.errors) {
    console.error('获取用户ID失败:', userIdData.errors);
    return;
  }
  const userId = userIdData.data.id;

  // 第二步:获取用户粉丝列表
  const followersUrl = `https://api.twitter.com/2/users/${userId}/followers?user.fields=username,name,id&max_results=100`;
  const followersResponse = UrlFetchApp.fetch(followersUrl, {
    headers: {
      Authorization: oAuthService.getAuthorizationHeader(followersUrl, 'GET')
    },
    muteHttpExceptions: true
  });
  const followersData = JSON.parse(followersResponse.getContentText());
  
  if (followersData.errors) {
    console.error('获取粉丝列表失败:', followersData.errors);
  } else {
    console.log('粉丝列表:', followersData.data);
    // 如需获取更多粉丝,使用followersData.meta.next_token进行分页请求
    if (followersData.meta.next_token) {
      console.log('下一页请求token:', followersData.meta.next_token);
    }
  }
}

注意事项

  • 确保你的Twitter开发者账号已启用API v2权限,且所有密钥完全正确(替换代码中的占位符)。
  • API默认单次返回最多100条粉丝数据,若需获取全部粉丝,需循环使用next_token参数发起分页请求。
  • 严格遵守Twitter API的调用速率限制,避免触发限流机制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:32:42