2013-07-05 23 views
0

我使用twitter-api-php。我發佈狀態,它運作良好。唯一的問題是,當推文以@username開頭時,它會返回一個空白頁。我不知道什麼是錯的。這個問題不只是我,當谷歌搜索一下,發現其他人有相同的查詢,Twitter的api給予空白的迴應,如果tweet開始wil @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,這很好。

+0

這是更有可能的是有兩個人在那裏誰有錯誤在他們的代碼比Twitter的API有沒有文件這樣一個關鍵的錯誤或報告。發佈一些你的代碼! – 2rs2ts

+0

增加了一些代碼和說明。 – Sourabh

回答

2

您準確發送的問題

您還沒有收到您正在使用的庫的最新版本!

This commit GitHub上顯示修復您確切的問題:

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

基本上,添加一個空格或一個句號如何解決這個問題。我在開頭添加了一個空字符,並且所有推文(以及@reply推文 - 這些推文都無法正常工作)現在工作得很好。

這是由於與捲曲的限制,並@開頭符號(捲曲認爲你想上傳一個文件,當你做到這一點)。

因此,要重申:

重新下載TwitterAPIExchange.php,並保持檢查出的更新日誌。你會發現這解決了你的問題。