使用 Twitter API 获取关注用户列表

986 阅读1分钟

使用 Twitter API 获取关注用户列表

Twitter API 提供了一系列强大的工具,使开发者能够与 Twitter 平台进行交互。本文将介绍如何使用 Twitter API 获取某个用户的关注者列表。

1. 注册 Twitter 开发者账户

首先,需要注册一个 Twitter 开发者账户,并创建一个应用来获取 API 凭证。这些凭证包括 API key、API secret key、Access token 和 Access token secret。

2. 获取 Bearer Token

为了简化认证过程,可以使用 OAuth 2.0 生成一个 Bearer Token。可以通过以下步骤生成:

curl -u 'API_KEY:API_SECRET_KEY' \
    --data 'grant_type=client_credentials' \
    'https://api.twitter.com/oauth2/token'

将返回的 access_token 用于后续的 API 请求。

3. 获取用户ID

首先需要知道用户的ID,使用以下请求:

const getUserId = async (username, bearerToken) => {
  const url = `https://api.twitter.com/2/users/by/username/${username}`;
  const response = await fetch(url, {
    headers: {
      'Authorization': `Bearer ${bearerToken}`
    }
  });
  const user = await response.json();
  return user.data.id;
};

4. 获取关注者列表

有了用户ID后,可以通过以下请求获取关注者列表:

const fetchFollowers = async (userId, bearerToken) => {
  const followersUrl = `https://api.twitter.com/2/users/${userId}/followers`;
  const followersResponse = await fetch(followersUrl, {
    headers: {
      'Authorization': `Bearer ${bearerToken}`
    }
  });
  const followers = await followersResponse.json();
  console.log(followers);
};

5. 综合示例

将上述步骤综合在一起:

const fetchFollowers = async (username) => {
  const bearerToken = 'YOUR_BEARER_TOKEN';  // 替换为实际的 Bearer Token

  const getUserId = async (username, bearerToken) => {
    const url = `https://api.twitter.com/2/users/by/username/${username}`;
    const response = await fetch(url, {
      headers: {
        'Authorization': `Bearer ${bearerToken}`
      }
    });
    const user = await response.json();
    return user.data.id;
  };

  const userId = await getUserId(username, bearerToken);

  const followersUrl = `https://api.twitter.com/2/users/${userId}/followers`;
  const followersResponse = await fetch(followersUrl, {
    headers: {
      'Authorization': `Bearer ${bearerToken}`
    }
  });

  const followers = await followersResponse.json();
  console.log(followers);
};

fetchFollowers('twitter_username');