0

我正在使用twitter-api-php。我正在发布状态,它运作良好。唯一的问题是,当推文以@username 开头时,它会返回一个空白页。我不知道怎么了。这个问题不仅仅是我的问题,当谷歌搜索它时,发现另一个有相同查询的人,

这是我用来发布的代码。

$settings = array(
    'oauth_access_token' => "ACCESS_TOKEN",
    'oauth_access_token_secret' => "ACCESS_TOKEN_SECRET",
    'consumer_key' => CONSUMER_KEY,
    'consumer_secret' => CONSUMER_SECRET
);

$url = "https://api.twitter.com/1.1/statuses/update.json";
$str = "@sourabh_bajaj this is a sample tweet";
$requestMethod = 'POST';

$twitter=new TwitterAPIExchange($settings);
echo $twitter->setPostfields(
    array(
        "trim_user" => 1,
        "status" => $str
    )
)->buildOauth($url, $requestMethod)->performRequest();

如果我们从消息的开头删除@sourabh_bajaj,这会很好。

4

1 回答 1

2

您的确切问题

您尚未获得正在使用的库的最新版本!

github 上的此提交显示了针对您的确切问题的修复:

$array['status'] = sprintf("\0%s", $array['status']);

基本上,添加空格或句号不是解决此问题的方法。我在开头添加了一个空字符,所有推文(和@reply 推文 - 使用句号无法正常工作)现在都可以正常工作。

这是由于 cURL 的限制,以及开头的 @ 符号(当您这样做时,cURL 认为您正在尝试上传文件)。

所以,重申一下:

重新下载 TwitterAPIExchange.php,并继续查看更新日志。你会发现这可以解决你的问题。

于 2013-07-09T11:09:26.527 回答