使用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
相关产品推荐
相关产品推荐

