Nodejs网站受twitter API v1版本禁用影响,我的twitter端网站也无法访问了

Nodejs网站受twitter API v1版本禁用影响,我的twitter端网站也无法访问了

twitter 禁止 api v1 版本,顺便把我的写的网站twitter端也干挂了。 有消息说,大量api客户端不利于twitter的发展。 但是我始终想不明白。哪里不利于了。

5 回复

Node.js 网站受 Twitter API v1 版本禁用影响

背景信息

Twitter 官方宣布将在2022年3月终止对 API v1.1 的支持,并要求所有开发者迁移到 API v2。API v1.1 自2012年发布以来一直是许多应用的基础,但随着Twitter平台的不断发展,旧版API逐渐成为限制其发展的因素之一。

影响分析

当API v1被禁用后,依赖于这些API的Node.js应用将无法正常工作。例如,如果你的应用使用的是v1版本的API来获取推文或用户信息,那么它将不再能获取到数据,导致应用功能失效或部分功能无法正常使用。

解决方案

为了确保你的Node.js应用能够继续正常运行,你需要迁移至Twitter API v2。下面是一些关键步骤和示例代码,帮助你完成这一过渡。

迁移步骤

  1. 注册开发者账户:首先,你需要在Twitter开发者平台上注册一个账户并创建一个新的应用。
  2. 获取API密钥:在开发者平台上创建新的应用后,获取API v2所需的密钥(包括API Key, API Secret Key, Access Token, 和 Access Token Secret)。
  3. 更新代码:根据新API的要求更新你的代码。

示例代码

假设你之前使用的是twit库来访问Twitter API v1.1,现在需要将其更新为@twitter-api-client/tweets库以兼容API v2。

// 旧代码(基于Twitter v1.1)
const Twit = require('twit');
const T = new Twit({
  consumer_key: 'YOUR_CONSUMER_KEY',
  consumer_secret: 'YOUR_CONSUMER_SECRET',
  access_token: 'YOUR_ACCESS_TOKEN',
  access_token_secret: 'YOUR_ACCESS_TOKEN_SECRET'
});

T.get('search/tweets', { q: 'node.js', count: 10 }, function(err, data, response) {
  console.log(data.statuses);
});

// 新代码(基于Twitter v2)
const { TweetsApi } = require('@twitter-api-client/tweets');
const client = new TweetsApi({
  apiKey: 'YOUR_API_KEY',
  apiSecretKey: 'YOUR_API_SECRET_KEY',
  accessToken: 'YOUR_ACCESS_TOKEN',
  accessTokenSecret: 'YOUR_ACCESS_TOKEN_SECRET'
});

async function getTweets() {
  const params = {
    query: 'node.js',
    maxResults: 10
  };
  try {
    const response = await client.searchAllTweets(params);
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}

getTweets();

总结

虽然API v1的禁用给依赖它的应用带来了挑战,但通过及时迁移至API v2,你可以继续保持应用的功能性,并且还能利用API v2提供的更多高级特性。希望上述示例代码能帮助你顺利完成迁移过程。


国内把github搞挂过一次,现在所有人都怕了哈哈

不是。现在twitter升级客户端api版本,老版本都不用不了了,而且新版本对twitter的推数有限制。

OK了.只要把api 地址内的版本号改到1.1 就OK了,但是twitter已经限速了,不知道是针对用户的还是针对整个应用的,

Twitter 在 2022 年底正式停用了 API v1.1,建议所有开发者迁移到 Twitter API v2,因为 v2 提供了更好的性能、更丰富的功能以及更高的速率限制。

以下是一个使用 twit 库将 Node.js 应用程序从 Twitter API v1.1 迁移到 v2 的简单示例:

  1. 首先安装 twit 库(如果还没有安装):
npm install twit
  1. 创建一个 index.js 文件,并编写以下代码:
const Twit = require('twit');

const T = new Twit({
    consumer_key:         'YOUR_CONSUMER_KEY',
    consumer_secret:      'YOUR_CONSUMER_SECRET',
    access_token:         'YOUR_ACCESS_TOKEN',
    access_token_secret:  'YOUR_ACCESS_TOKEN_SECRET',
    version:              '2' // 使用 v2 版本
});

// 获取用户信息
T.get('users/show', { screen_name: 'twitter' }, function (err, data, response) {
    if (!err) {
        console.log(data);
    } else {
        console.error(err);
    }
});
  1. 将您的 Twitter API 凭据替换为上面代码中的 YOUR_CONSUMER_KEYYOUR_CONSUMER_SECRETYOUR_ACCESS_TOKENYOUR_ACCESS_TOKEN_SECRET

  2. 运行 node index.js 命令以测试代码是否正常工作。

以上代码展示了如何将 Node.js 应用程序从 Twitter API v1.1 迁移到 v2。请注意,v2 版本有许多改进,如完整的数据结构、增强的搜索功能等。同时,API v2 使用 OAuth 2.0 授权流程,它比 OAuth 1.0a 更加简化和安全。更多关于 v2 的详细信息,请参阅官方文档:https://developer.twitter.com/en/docs/twitter-api/migrate

这样做可以确保您的应用程序不会受到 Twitter API v1 停用的影响。如果您有任何其他问题或需要进一步的帮助,请随时询问。

回到顶部