2013-06-18 55 views
1

我正在使用tmOAuth庫。twitter api(php) - 狀態/銷燬 - 不返回

使用新的1.1 API,以下是返回錯誤代碼400 - 但驗證已完成(相同的身份驗證工作)!我使用的圖書館適用於所有通話,除此之外!

$tmhOAuth->request(
    'POST', $tmhOAuth->url('https://api.twitter.com/1.1/statuses/destroy/MYIDHERE.json'), 
    array(
     'id' => MYIDHERE 
    ) 
); 

twitter API文檔聲明,您不必在發送後發送id,但這沒有任何區別。

我今天用兩個不同的庫測試了這個,但都沒有工作。

任何建議 - 有誰知道是否有問題嗎?

+0

提交錯誤報告,在GitHub上的供應商,在「問題」選項卡。 – Jimbo

+0

現在在2 api中測試 - 不能是一個簡單的api錯誤 –

+0

安迪,這是一個圖書館問題 - 你測試過的那些不起作用。看到我的答案。 – Jimbo

回答

0

根據your comment,您已在兩個庫中對1.1 API進行了測試。

雖然您還沒有在this one中進行過測試。說明here,雖然你似乎已經擁有了你的憑證。

這基本上證明你使用的庫存在問題,而不是twitter API。因此,要麼提交github上的錯誤報告(他們還有什麼要知道的?),或者使用另一個類似上面的庫。使用上述庫所需

確切的代碼(和它的作品,我只是測試它):

// Require the library file 
require_once('TwitterAPIExchange.php'); 

// Set up your credentials 
$settings = array(
    'oauth_access_token' => "YOUR_TOKEN", 
    'oauth_access_token_secret' => "YOUR_TOKEN_SECRET", 
    'consumer_key' => "YOUR_CONSUMER_KEY", 
    'consumer_secret' => "YOUR_CONSUMER_SECRET" 
); 

// Put the correct ID in the URL 
$url = 'https://api.twitter.com/1.1/statuses/destroy/YOURIDHERE.json'; 

// Set the request type 
$requestMethod = 'POST'; 

// Set the post fields 
$postfields = array('id' => 'YOURIDHERE'); 

// Make the request 
$twitter = new TwitterAPIExchange($settings); 
$json = $twitter->buildOauth($url, $requestMethod) 
       ->setPostfields($postfields) 
       ->performRequest(); 

// Dump the response 
$result = json_decode($json); 
var_dump($result); 
+0

完美 - 你的權利 - 它的工作原理應該如此。 ;)從計算出錯誤中獲得了更多的時間! –

+0

也許'$ postfields'不是必需的:所有的信息都在url中。 – Asenar

+0

@Asenar如果所有的信息都在url中,那麼這是一個GET請求。大聲笑。 – Jimbo

0

如果您使用從亞伯拉罕·威廉姆斯twitteroauth的PHP庫,並試圖刪除舊的鳴叫/轉推你需要構建post()查詢這樣:

$response = $connection->post('statuses/destroy/'.$tweetID, array()); //Curl url output = statuses/destroy/$tweetID.json 
+0

非常感謝! – Asenar