使用TwitterOAuth PHP发布推文失败求助
解决TwitterOAuth发布推文无响应无错误的问题
以下是针对你的情况的排查和修复步骤:
1. 开启PHP错误显示,暴露隐藏错误
脚本无输出可能是因为PHP错误被抑制了,先在脚本最顶部添加错误显示代码,直接看到具体问题:
<?php error_reporting(E_ALL); ini_set('display_errors', 1); require_once "vendor/autoload.php"; // 后续代码不变...
2. 完善错误处理逻辑,获取完整返回信息
原代码中直接访问$result->errors[0]->message可能在返回结构不符合预期时报错,修改错误分支代码,输出完整的返回数据和HTTP状态码:
else { echo 'HTTP状态码: ' . $connection->getLastHttpCode() . '<br>'; echo '完整返回结果: <br>'; var_dump($result); }
这样能看到Twitter API返回的具体内容,哪怕不是标准的errors结构。
3. 验证认证信息与应用权限
- 确认
CONSUMER_KEY、CONSUMER_SECRET、ACCESS_TOKEN、ACCESS_TOKEN_SECRET完全正确,没有空格或字符遗漏。 - 登录Twitter开发者平台,检查你的应用权限与功能是否开启了**读写(Read and write)**权限,发布推文需要写权限。权限变更后,必须重新生成
ACCESS_TOKEN和ACCESS_TOKEN_SECRET,旧令牌会失效。
4. 检查网络与SSL连接
- 确保运行脚本的服务器可以访问
api.twitter.com(端口443),可以通过服务器执行curl -I https://api.twitter.com/1.1/statuses/update.json测试连通性。 - 确认PHP的cURL扩展已启用,且支持SSL(可以通过
phpinfo()查看cURL相关信息)。
5. 确认TwitterOAuth版本与API兼容性
如果你使用的是较新版本的TwitterOAuth,可显式指定API版本为1.1(statuses/update属于v1.1端点):
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); $connection->setApiVersion('1.1'); // 添加这行
完成以上步骤后,重新运行脚本,就能看到具体的错误信息或成功提示,再根据返回结果针对性解决。
内容的提问来源于stack exchange,提问作者Digishack
相关产品推荐
相关产品推荐

