作者:Sorsa 编辑部

发布于 2026 年 6 月。更新于 2026 年 7 月:新增了 100 次免费请求的起步选项,并把 Sorsa 价格刷新为每千批量费率。反映 X 当前的按量付费定价(包括 2026 年 4 月的写入成本变化)和 PHP 工具的现状:X 只为 Python 和 TypeScript 提供官方 SDK,没有 PHP 版。

核心要点: 2026 年没有面向 PHP 的官方 X(Twitter)API SDK;X 只为 Python 和 TypeScript 提供官方 SDK。PHP 里的实用路线是社区库(比如 twitteroauth)、带 bearer 令牌的朴素 cURL 或 Guzzle,或只读的第三方 REST API。

如果你搜 “twitter api php”、指望有一个官方、有支持的包,那是没有的。X 在 2025 年底为 Python 和 TypeScript 推出了第一方 SDK,把 PHP 留给了社区。多数在这个查询上排名靠前的 PHP 教程,教的是通过 OAuth 发帖、或用 X 已退役的旧 v1.1 接口,对着一套不再存在的定价。

我们开发并运营 Sorsa API 这个 Twitter/X API 替代方案,而只读路径天然契合 PHP:用户资料、推文、搜索结果和粉丝都以 JSON 返回,json_decode 一下就变成朴素数组,只需 ApiKey 请求头里的一个 API 密钥,没有 OAuth 流程,也没有要等的开发者账号审批。在读密集型工作上,它最多可比官方 X API 便宜 50 倍,所有套餐统一 20 次/秒,批量接口上折算为每 1,000 条推文 $0.02、每 1,000 份资料 $0.01 起,套餐 $49/月含 1 万次请求起。注册即送 100 次免费请求,无需绑卡,覆盖全部 40 个接口。不是每个项目都合这个模子:有的要发帖,有的因合规必须用官方 API。本指南用可用代码(cURL、Guzzle 和 WordPress)、当前定价,以及一个会分页并重试的采集器,覆盖每一条 PHP 路线。你也可以在在线试用工具 Playground 里不写代码就测试调用。

目录


变了什么:2026 年的 X API 和 PHP 工具 {#what-changed-the-x-api-and-php-tooling-in-2026}

自旧教程写就以来,PHP 开发者面前有三件事变了。X API 转向了没有免费版的按量付费计费,并按资源读取收费。2026 年 4 月更新后,写入变贵了。X 还推出了首批官方 SDK,但只给 Python 和 TypeScript,所以 PHP 开发者仍然依赖社区库或裸 HTTP。

按量付费是默认。 新注册没有免费版,也没有月度 Basic 套餐。你买额度、按资源付费:帖子读取每条 $0.005,用户资料每份 $0.010,粉丝或关注记录每条 $0.010。读取自己账号的数据每资源 $0.001,标准账号每月上限 200 万次帖子读取。一份真实预算背后的数字,见我们的 X API 价格详解X API 定价为何攀升

写入变贵了。 2026 年 4 月更新后,标准帖子每请求 $0.015,含 URL 的帖子 $0.20。关注、点赞和引用帖子动作从自助档位撤出,现在需要 Enterprise 合同。

官方 SDK 只落地了 Python 和 TypeScript。 2025 年底 X 为这两种语言宣布了第一方 SDK。没有官方 PHP SDK。社区库填了这个缺口,其中使用最广的仍是 twitteroauth,设好 API 版本后就支持 v2 接口。

网上多数 PHP 示例都陈旧。 很大一部分教 statuses/updatesearch/tweets 这样的 v1.1 调用(X 已退役),或只聚焦发帖。通过 v2 读取公开数据是一条不同的路径,也是本指南所走的那条。


X API 最好的 PHP 库 {#the-best-php-library-for-the-x-api}

对多数 PHP 项目,twitteroauth 仍是默认:它是使用最广的 PHP 客户端、通过 Composer 安装,并用 setApiVersion('2') 加通用的 getpost 调用触达 v2 接口。它处于维护模式(无新功能开发),但能用。要一个 v2 原生的封装,twitter-api-v2-php 和 bird-elephant 等社区包直接面向 v2 API。对于只读数据采集,许多团队跳过库、用朴素 cURL 或 Guzzle 调用一个第三方 REST API,这彻底移除了 OAuth。

以下是主要选项的对比。

库 / 工具API 版本最适合说明
twitteroauthv1.1 和 v2多数项目、使用最广Composer 安装。通过 setApiVersion 和通用 get/post 触达 v2。处于维护模式,但可用。
twitter-api-v2-phpv2现代 v2 原生访问聚焦 v2 接口的封装。社区比 twitteroauth 小。
bird-elephantv2v2 接口覆盖面向 v2 API 的社区 PHP 客户端。
cURL 或 Guzzle(无封装)任意最少依赖、完全掌控你自己构建请求和分页。与第三方 API 搭配良好。
只读 REST API不适用读密集型数据采集请求头里一个密钥,无 OAuth,按请求计费。只读。

无论你为官方 API 挑哪个库,成本都一样,因为 X 在自己那一侧按资源计费,不按库。你能控制的变量是拉取多少资源,而批量接口和按请求计费的 API,恰恰改变的就是这笔成本账。


你该用哪种方式? {#which-approach-should-you-use}

写代码之前先挑路线。要用最常见的库对 v2 API 读写,用 twitteroauth。要以最少配置大量拿只读数据,第三方 REST API 去掉了 OAuth 和审批队列。要无封装地完全掌控,朴素 cURL 或 Guzzle 就够。这个决定大体是读对写,以及你拉多少量。

如果你需要……就用……
用一个流行的库读写twitteroauth
规模化只读数据、最少配置只读第三方 REST API
完全掌控、无封装带 bearer 令牌的朴素 cURL 或 Guzzle
发帖、点赞或关注twitteroauth 或官方 API(需 OAuth)

如果你的项目只读取公开数据,第三方 API 去掉了 OAuth 流程:请求头里一个密钥,就能开始拉数据,没有开发者账号申请,也没有额度购买。如果你要发帖或跑写操作,通过 twitteroauth 的官方 API 是那条路,没有第三方服务商代你发帖。用另一种语言?见本指南的 Python 版


方法 1:一个社区库(twitteroauth) {#method-1-a-community-library-twitteroauth}

twitteroauth 是 X API 使用最广的 PHP 客户端,通过 Composer 安装、处理认证,在你调用 setApiVersion('2') 后触达 v2 接口。读取公开数据,一个仅应用的 bearer 令牌就够。

安装它:

bash
composer require abraham/twitteroauth

构建一个仅应用连接并搜索最近七天:

php
<?php
require 'vendor/autoload.php';

use Abraham\TwitterOAuth\TwitterOAuth;

// 仅应用认证:API 密钥、API secret、null、bearer 令牌
$connection = new TwitterOAuth(
    getenv('X_API_KEY'),
    getenv('X_API_SECRET'),
    null,
    getenv('X_API_BEARER_TOKEN')
);
$connection->setApiVersion('2');

$tweets = $connection->get('tweets/search/recent', [
    'query'        => 'php lang:en',
    'max_results'  => 20,
    'tweet.fields' => 'created_at,public_metrics',
]);

foreach ($tweets->data as $tweet) {
    echo $tweet->text . "\n";
}

通过同一个通用的 get 调用查询一份资料:

php
$user = $connection->get('users/by/username/elonmusk', [
    'user.fields' => 'public_metrics,created_at',
]);

printf(
    "@%s has %d followers\n",
    $user->data->username,
    $user->data->public_metrics->followers_count
);

twitteroauth 返回解码后的对象,所以一条推文的文本是 $tweet->text,一份资料的指标是 $user->data->public_metrics。同样的 getpost 方法按路径触达任意 v2 接口,包括粉丝(users/:id/followers)和时间线(users/:id/tweets)。当你想要文档最全的 PHP 选项、并且可能也要写入时,它是对的选择。取舍在于:这个库处于维护模式而非活跃开发,你仍需要一个付费的 X 开发者账号,而且每次调用都要付 X 的按资源定价。


方法 2:带 bearer 令牌的朴素 cURL 或 Guzzle {#method-2-plain-curl-or-guzzle-with-a-bearer-token}

没有库、没有封装。PHP 内置的 cURL 扩展,或 Guzzle HTTP 客户端,都能用 Authorization 请求头里的一个 bearer 令牌直接调用 X API v2。这条路适合想完全掌控请求的开发者,或者偏好避开 Twitter 专用依赖的人。

用 cURL 查询一份资料:

php
<?php
$ch = curl_init('https://api.x.com/2/users/by/username/elonmusk?user.fields=public_metrics');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . getenv('X_API_BEARER_TOKEN'),
]);

$response = curl_exec($ch);
curl_close($ch);

$user = json_decode($response, true);
printf(
    "@%s has %d followers\n",
    $user['data']['username'],
    $user['data']['public_metrics']['followers_count']
);

官方 API 用响应 meta 里的 next_token 给搜索分页。翻完每一页,带一个守卫,别让一个宽泛查询耗尽你的额度:

php
<?php
function searchRecent(string $token, string $query, int $maxPages = 10): array
{
    $all = [];
    $nextToken = null;
    $pages = 0;

    do {
        $params = [
            'query'        => $query,
            'max_results'  => 100,
            'tweet.fields' => 'created_at,public_metrics',
        ];
        if ($nextToken) {
            $params['next_token'] = $nextToken;
        }

        $url = 'https://api.x.com/2/tweets/search/recent?' . http_build_query($params);
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $token]);
        $response = curl_exec($ch);
        curl_close($ch);

        $body = json_decode($response, true);
        $all = array_merge($all, $body['data'] ?? []);
        $nextToken = $body['meta']['next_token'] ?? null;
        $pages++;
    } while ($nextToken && $pages < $maxPages);

    return $all;
}

想要最少依赖、或者在调试 API 行为时,这管用。缺点是分页、状态码处理、限速和重试都归你。一次性脚本没问题;生产级集成,你最终会自己写一个小客户端。这条路仍然需要一个开发者账号和按量付费额度。


方法 3:一个只读 REST API {#method-3-a-read-only-rest-api}

如果一个 PHP 应用只读取公开 Twitter 数据,第三方 REST API 能彻底跳过官方 API。没有 OAuth、没有申请步骤、没有额度购买流程,就是请求头里一个密钥,加直接解码进数组的 JSON。

这是不用开发者账号获取 X 数据的实用路线。下面是用 Sorsa、只用 cURL 的写法。

获取一份用户资料:

php
<?php
$ch = curl_init('https://api.sorsa.io/v3/info?username=elonmusk');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['ApiKey: ' . getenv('SORSA_API_KEY')]);

$response = curl_exec($ch);
curl_close($ch);

$user = json_decode($response, true);
echo "@{$user['username']} ({$user['display_name']}): {$user['followers_count']} followers\n";

用完整的网页操作符集搜索推文。搜索接口每页返回约 20 条推文和一个用于下一页的 next_cursor

php
<?php
$ch = curl_init('https://api.sorsa.io/v3/search-tweets');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'ApiKey: ' . getenv('SORSA_API_KEY'),
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'query' => 'php lang:en',
    'order' => 'latest',
]));

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
foreach ($data['tweets'] as $tweet) {
    echo "{$tweet['likes_count']} likes: {$tweet['full_text']}\n";
}

拉取一份粉丝列表。一次请求最多返回 200 份用户资料,所以一个 1,000 粉丝的账号是五次请求,而不是十页翻页:

php
<?php
$ch = curl_init('https://api.sorsa.io/v3/followers?username=elonmusk');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['ApiKey: ' . getenv('SORSA_API_KEY')]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
echo 'Got ' . count($data['users']) . " followers in one request\n";

如果你的项目已经用 Guzzle,同样的调用更短。用批量接口一次请求取多达 100 条推文,只算一次请求并返回完整的推文对象:

php
<?php
$client = new GuzzleHttp\Client();

$res = $client->post('https://api.sorsa.io/v3/tweet-info-bulk', [
    'headers' => ['ApiKey' => getenv('SORSA_API_KEY')],
    'json'    => ['tweet_links' => ['1782368585664626774', '1782368585664626775']],
]);

$data = json_decode((string) $res->getBody(), true);

复杂查询就像在高级搜索里那样组合操作符,完整的操作符列表在我们的高级搜索语法参考里,而这个接口可检索到完整推文存档。每个推文响应都带着作者资料和公开指标,所以拉取互动数字或获取粉丝列表都不增加额外调用。请求头是 ApiKey,基础 URL 是 https://api.sorsa.io/v3,字段名与 API 文档完全一致。


有面向 X API 的官方 PHP SDK 吗? {#is-there-an-official-php-sdk-for-the-x-api}

没有。截至 2026 年,X 只为 Python 和 TypeScript 发布官方 SDK,没有官方 PHP SDK。X 自己的“工具与库”页面列出那两个第一方 SDK 外加开发者工具,而开源的 SDK 生成器目前只为 Python 和 TypeScript 提供模板。

对 PHP 来说,这就留下上面讲过的几个选项。twitteroauth 是使用最广的客户端(通过 setApiVersion 用 v2);twitter-api-v2-php 和 bird-elephant 是 v2 原生社区包;朴素 cURL 或 Guzzle 用于完全掌控;只读第三方 API 用于读密集型工作。没有第一方包能压过这些,而 twitteroauth 本身处于维护模式,所以选择时要权衡长期维护。

如果日后真出了 PHP SDK,很可能会从和 Python、TypeScript 相同的 OpenAPI 规格生成。在那之前,任何声称有“官方 PHP SDK”的教程都不准确。


从 WordPress 调用 X API {#calling-the-x-api-from-wordpress}

很大一部分接触 X API 的 PHP 跑在 WordPress 内部,而你不需要插件或外部库。WordPress 自带 HTTP API,所以 wp_remote_get 能调用任意 REST 接口、并直接传认证请求头。对只读数据,这就是一个函数、没有 OAuth。

php
<?php
// 在一个主题的 functions.php 里,或一个小插件里
$response = wp_remote_get('https://api.sorsa.io/v3/info?username=elonmusk', [
    'headers' => ['ApiKey' => getenv('SORSA_API_KEY')],
    'timeout' => 15,
]);

if (is_wp_error($response)) {
    return;
}

$user = json_decode(wp_remote_retrieve_body($response), true);
echo esc_html("@{$user['username']}: {$user['followers_count']} followers");

同样的模式对官方 API 也有效,只要换掉 URL、并用带 bearer 令牌的 Authorization 请求头(而不是 ApiKey 请求头)。用 WordPress Transients API(set_transient)缓存结果,让页面加载不必每次浏览都打 API,这既加快页面,也压低请求量。对一个只读小组件(比如粉丝计数或近期推文块),这就是整个集成。


用 PHP 构建一个数据采集器 {#building-a-data-collector-in-php}

生产采集器在单次调用之外还需要三样东西:游标分页、页数守卫(防止宽泛查询耗尽额度),以及碰到速率限制时的重试。下面是一个对着搜索接口的完整只读采集器,用 next_cursor 分页、并在 429 上退避。

php
<?php
function collectTweets(string $apiKey, string $query, int $maxPages = 20): array
{
    $collected = [];
    $cursor = null;
    $pages = 0;

    while ($pages < $maxPages) {
        $payload = ['query' => $query, 'order' => 'latest'];
        if ($cursor) {
            $payload['next_cursor'] = $cursor;
        }

        $ch = curl_init('https://api.sorsa.io/v3/search-tweets');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'ApiKey: ' . $apiKey,
            'Content-Type: application/json',
        ]);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));

        $response = curl_exec($ch);
        $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);

        // 固定每秒 20 次请求的限制:遇到 429,等一秒再重试
        if ($status === 429) {
            sleep(1);
            continue;
        }

        $data = json_decode($response, true);
        $collected = array_merge($collected, $data['tweets'] ?? []);

        $cursor = $data['next_cursor'] ?? null;
        $pages++;
        if (!$cursor) {
            break;
        }
    }

    return $collected;
}

我们重建自己的采集器时发现,统一的每秒限制比逐接口的窗口更好控节奏:遇到 429 等一秒,不用按接口追踪一个重置时间戳。游标机制见分页指南,官方侧的细节在我们的 X API 速率限制参考里。需要并行读取的话,Guzzle 的 pool 让你一次跑好几个请求,同时把并发上限设在限制内。同一个循环改改接口和 payload,就能换到 /user-tweets/followers


对比:三条路线,并排 {#comparison-three-routes-side-by-side}

三条 PHP 路线在两个维度上分野:你能不能写入,以及怎么计费。两条官方 API 路线都需要开发者账号、按资源计费。只读 API 用写权限换来一个单一密钥和按请求计费。

路线设置认证读取写入计费
twitteroauth(社区库)开发者账号、额度Bearer / OAuth按资源
朴素 cURL 或 Guzzle开发者账号、额度Bearer / OAuth按资源
只读 REST APIAPI 密钥,约 3 分钟单个 ApiKey 请求头否(只读)按请求

这个分野告诉你该挑哪个:要发帖或跑写操作,那是官方 API 通过 twitteroauth 的地盘。而要以固定、可预测的价格做读密集型访问,只读 API 是更便宜、更简单的路线,返回的还是同样的公开数据。

读取上的成本差距来自计费单位。官方 API 对响应里每条帖子和每份作者资料收费;按请求计费的 API 无论返回多少条目都只收一次请求。

负载官方 X API只读 API(Sorsa Pro)
返回 20 条推文的搜索(含作者数据)$0.30(20 × $0.005 加 20 × $0.010)一次请求,约 $0.002(含作者)
1,000 份粉丝资料约 $10(按资料)约 $0.01(5 次请求,每页 200)
按 ID 取 100 条推文(含作者数据)$1.50(100 × $0.005 加 100 × $0.010)一次请求,约 $0.002(批量接口)
每月上限200 万次帖子读取按套餐(1 万到 50 万次请求)
速率限制每 15 分钟 300 到 900(不定)20 次/秒,固定

对读密集型工作,按资源模型就是把一件简单的事做贵的方式,这也是为什么一旦你越过每月约 1 万次读取,按请求计费就胜出。写入是例外:发帖和私信只活在官方 API 上,所以写入密集型集成不管读取成本如何都属于那里。


如何拿到你的 API 凭据 {#how-to-get-your-api-credentials}

用官方 API,就在 developer.x.com 创建开发者账号、同意开发者条款、说明用例,再创建一个 Project 和 App 来生成 API 密钥、API secret 和 bearer 令牌。第一次调用之前先买额度,因为没有免费版。用只读第三方 API,就注册、生成一个密钥、在请求头里带上,没有申请或审批步骤。

任一凭据都从环境读取、绝不从源码:

bash
# .env 或你的服务器环境
X_API_KEY=your-x-api-key
X_API_SECRET=your-x-api-secret
X_API_BEARER_TOKEN=your-x-bearer-token
SORSA_API_KEY=your-sorsa-api-key

PHP 里用上面展示的 getenv 读它们,开发时也可以用 vlucas/phpdotenv 之类的包加载 .env 文件。如果你在移植现有的官方 API 代码,迁移指南把官方接口和字段名映射到对应项,让你不用重写逻辑就能换掉传输层。


实战:削减一个 PHP 集成的成本 {#in-practice-cutting-the-cost-of-a-php-integration}

一个约 12 人的机构找到我们,正跑着一个基于 WordPress 的客户仪表盘,通过 twitteroauth 在官方 API 上拉取被追踪账号的数据。代码能用,但每次仪表盘刷新都按帖子读取和作者资料付费,OAuth 令牌处理又多了几个活动部件。而且每月 200 万次帖子读取的上限,意味着随着接入客户越来越多,他们得盯着量。

修法是换传输层,不是重写。他们保留了 WordPress 那一侧和渲染,把请求指向搜索和 /followers 接口,并把 OAuth 换成一个通过 wp_remote_get 读取的 ApiKey 请求头。因为每次请求最多返回 20 条推文或 200 份粉丝资料、而不是按资源计费,同样的刷新只花了此前的一个零头,读密集的部分最多便宜 50 倍。一个每秒限制取代了每月上限,成为唯一需要控节奏的东西。他们用 transients 缓存响应,所以多数页面加载根本不打 API。对只读负载来说,按资源模型此前一直是把简单事做贵的方式。


常见问题 {#faq}

有面向 PHP 的官方 X(Twitter)API SDK 吗?

没有。截至 2026 年,X 只为 Python 和 TypeScript 发布官方 SDK,没有官方 PHP SDK。使用最广的 PHP 客户端是 twitteroauth,通过 setApiVersion 和通用的 get、post 方法触达 v2 接口,尽管它处于维护模式。还有 twitter-api-v2-php 和 bird-elephant 这类更新的 v2 原生社区包,所以任何“官方 PHP SDK”的说法都不准确。

Twitter API 最好的 PHP 库是什么?

对多数项目,twitteroauth 是实用的默认:使用最广的 PHP 客户端、通过 Composer 安装,设好 API 版本后支持 v2,尽管它处于维护模式。要 v2 原生代码,twitter-api-v2-php 和 bird-elephant 直接面向 v2 接口。而要大量做只读数据,很多 PHP 团队会跳过库,用朴素 cURL 或 Guzzle 调用第三方 REST API。

如何在 PHP 里不用开发者账号获取推文?

调用一个只读第三方 REST API。用 Sorsa,你注册、拿一个 API 密钥、在 ApiKey 请求头里带上、发一个 cURL 或 Guzzle 请求,json_decode 把响应变成一个朴素数组。没有 OAuth 流程、没有应用审核、没有额度购买,每个推文响应都包含作者资料和公开指标,所以一次请求就返回完整数据。

2026 年 X API 对一个 PHP 应用要花多少钱?

在官方 X API 上按资源付费:帖子读取每条 $0.005,用户资料每份 $0.010,标准帖子每条 $0.015,含 URL 的帖子 $0.20,每月上限 200 万次帖子读取。一次返回 20 条推文的搜索,一旦算上作者资料就是 $0.30。Sorsa 按请求计费,批量接口上折算为每 1,000 条推文 $0.02、每 1,000 份资料 $0.01 起,套餐 $49/月含 1 万次请求起,而注册即送的 100 次免费请求让你在付费之前先测。每次请求最多返回 20 条推文或 200 份粉丝资料。

能从 WordPress 调用 X API 吗?

能,而且不需要插件。WordPress 自带 HTTP API,所以 wp_remote_get 能调用 X API 或第三方 API、并直接传认证请求头:官方 API 用一个 bearer 令牌,只读服务商用一个 ApiKey 请求头。用 json_decode 解码 body、用 Transients API 缓存,让页面加载不必每次浏览都打 API。

在 PHP 里如何处理 X API 速率限制?

官方 API 按 15 分钟窗口限制请求(通常 300 到 900,取决于接口),撞上时返回 429。用 cURL 或 Guzzle,你检查状态码、重试前等待。Sorsa 这类按请求计费的 API 用 20 次/秒的限制,所以遇到 429 等一秒、再重试同一次调用,而 Guzzle 的 pool 让你为并行读取设并发上限。

twitteroauth 支持 X API v2 吗?

支持。twitteroauth 在你用值 2 调用 setApiVersion 之后触达 v2 接口,然后用通用的 get 和 post 方法配 v2 路径(比如 tweets/search/recent)。一个仅应用的 bearer 令牌就足以读取公开数据。它确实需要一个付费的 X 开发者账号,而且该库处于维护模式,所以没有新功能计划。


如何开始 {#getting-started}

挑一条路线、跑上面某个示例。

  • 只读数据:Sorsa 控制台拿一个密钥,设为 SORSA_API_KEY,跑任意方法 3 的示例。注册即送 100 次免费请求,无需绑卡,覆盖全部 40 个接口,付费之前就能测。结构化 X 数据不到一分钟就落到你的脚本里,快速上手带你走一遍第一次调用。套餐和限制见定价页面
  • 读写: 在 developer.x.com 创建一个开发者账号、买额度,并用你的 bearer 令牌跑 twitteroauth 或 cURL 示例。
  • 对比服务商: 对只读选项的更广视角,见 Twitter API 替代方案对比,而对托管抓取的取舍,见我们的抓取 X指南。

审校:Keksich(Sorsa 创始人,X API 研究者)

我们如何核实本指南

本指南在 2026 年 6 月一边每天运营该 API、一边撰写并核实。没有官方 PHP SDK、且存在 Python 和 TypeScript SDK 这两点,对照 X 的工具与库文档做了确认。twitteroauth 的 v2 用法(仅应用 bearer 构造、setApiVersion,以及对 v2 路径的通用 get/post)及其维护模式状态,对照其项目仓库核查。X API 定价反映当前的按量付费模型,包括 2026 年 4 月的写入成本变化。Sorsa 接口行为、按请求批量和套餐定价来自 Sorsa API 文档;团队的更多信息见我们的关于页面。库的版本号会变,所以以描述而非固定值给出;要拿当前价格,产品内文档才是准确来源。