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

使用PHP TwitterOAuth无法发推,连接出错求助

问题排查与解决方案

1. 适配X(原Twitter)API版本与端点

你当前使用的account/verify_credentials和statuses/update是v1.1 API端点,X免费版API对v1.1的部分接口有限制,推荐切换到v2 API:

  • 验证凭证改用2/users/me
  • 发布推文改用2/tweets

修改后的代码示例:

require_once plugin_dir_path(__FILE__) . '/vendor/autoload.php';

use Abraham\TwitterOAuth\TwitterOAuth;

function TweetPost() {
    define('CONSUMER_KEY', '你的Consumer Key');
    define('CONSUMER_SECRET', '你的Consumer Secret');
    define('ACCESS_TOKEN', '你的Access Token');
    define('ACCESS_TOKEN_SECRET', '你的Access Token Secret');

    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
    // 切换到v2 API版本
    $connection->setApiVersion('2');

    // 验证凭证有效性
    $content = $connection->get('users/me');
    if ($connection->getLastHttpCode() == 200) {
        echo "\n凭证验证成功";
    } else {
        // 打印详细错误信息,便于排查
        echo "\n凭证验证失败,HTTP状态码:" . $connection->getLastHttpCode();
        echo "\n错误详情:" . print_r($content, true);
    }

    // 发布推文
    $tweetParams = ['text' => 'Hi'];
    // 第三个参数传true,以JSON格式发送请求(v2 API要求)
    $tweet = $connection->post('tweets', $tweetParams, true);

    if ($connection->getLastHttpCode() == 201) { // 推文创建成功返回201状态码
        echo "\n成功:消息Hi已发布到Twitter";
    } else {
        echo "\n发推失败,HTTP状态码:" . $connection->getLastHttpCode();
        echo "\n错误详情:" . print_r($tweet, true);
    }
}

2. 检查API权限与密钥有效性

  • 登录X开发者平台,进入你的项目:
    • 进入「Projects & Apps」→ 对应应用 → 「Settings」→ 「User authentication settings」
    • 确认权限设置为Read and write,权限变更后需要重新生成Access Token和Access Token Secret
  • 确保所有密钥(Consumer Key、Consumer Secret、Access Token、Access Token Secret)复制完整,无空格或符号遗漏

3. 检查环境与网络配置

  • 确保你的WordPress站点使用HTTPS,X API要求所有请求必须通过HTTPS发送
  • 联系主机商确认服务器未限制出站请求,需允许访问api.twitter.com域名

内容的提问来源于stack exchange,提问作者Nisar Hussain Laghari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:07:18