2012-05-16 41 views
0

爲了序言,我對PHP不太瞭解。但是,我不確定這是一個PHP問題,但可能更多的是與我瞭解連接到Twitter的庫有關的問題。使用PHP Twitter庫發送鳴叫時遇到麻煩

我按照這裏的教程http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/使用馬特哈里斯的Twitter庫。除了我從Twitter獲得的鑰匙外,我沒有改變任何東西。

當我運行下面的代碼我得到一個未經授權的錯誤代碼401:

$tweet_text = 'Hello Twitter'; 
    print "Posting...\n"; 
    $result = post_tweet($tweet_text); 
    print "Response code: " . $result . "\n"; 

function post_tweet($tweet_text) { 

require_once('tmhoauth/tmhOAuth.php'); 

$connection = new tmhOAuth(array(
'consumer_key' => '******', 
'consumer_secret' => '******', 
'user_token' => '******', 
'user_secret' => '******', 
)); 

// Make the API call 
$connection->request('POST', 
$connection->url('1/statuses/update'), 
array('status' => $tweet_text)); 

return $connection->response['code']; 
} 
?> 

正如我先前所說,我使用由Twitter提供的密鑰。

有人能幫我試圖用上面的庫來測試twitter credientail驗證器在https://api.twitter.com/1/account/verify_credentials.json

我也使用與此新的TwitterOAuth庫下面的例子SO發佈Using basic oauth to send a tweet嘗試:

<?php 
require_once('twitteroauth.php'); 
$connection = new TwitterOAuth('app consumer key', 'app consumer secret', 'my access  token', 'my access token secret'); 
$connection->post('statuses/update', array('status' => 'text to be tweeted')); 

它沒有工作爲好;但它確實將頁面轉發給作者的github頁面!?!?

感謝您提供任何幫助!

回答

2

如果您確定按鍵正確,我會建議您檢查twitter中的應用程序設置以確保啓用寫入模式。

根據應用程序的設置確保應用程序的訪問類型設置爲

讀,寫和訪問直接信息

(或者至少讀/寫)

那麼也許嘗試再次生成訪問令牌?

+0

它實際上是訪問令牌沒有適當的權限。我必須刪除應用程序的訪問權限,然後重新創建訪問密鑰。顯然,如果您在將應用程序設置設置爲「讀取」,「寫入」和「訪問」之前請求訪問令牌,則令牌將在創建時獲得與應用程序相同的訪問權限。它不會隨着您更改應用程序的權限級別而改變。謝謝! – wali

+0

Twitter應該告訴它,如果你改變權限,你必須再次生成密鑰...什麼都可以,謝謝你的建議 –