2013-08-07 101 views
-1

我想將一些文本自動發佈到我的應用程序Twitter帳戶。我爲此創建了一個帳戶並獲取所需的所有信息併爲其編寫一個php代碼。這是簡單的代碼: 我做它只是爲了測試崗位能力:如何發佈飼料到Twitter?

<?php 
    require_once 'oauth/twitteroauth.php'; 
    $message = "hiiiiiii"; #actual message to twitter 

    define("CONSUMER_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");  
    define("CONSUMER_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
    define("OAUTH_TOKEN", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
    define("OAUTH_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 

    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET); 
print_r($connection); 

    $content = $connection->get('account/verify_credentials'); 
//print_r($content); 


    $connection->post('statuses/update', array('status' => $message)); 
    ?> 

我從帳戶中的信息,所以我想連接是否正常工作,但爲什麼我不能發佈任何東西嗎?我試圖發佈此消息,但在執行此代碼後,在我的Twitter上沒有發生任何新的鳴叫顯示?

$連接 - >後是一個方法:

/** 
    * POST wrapper for oAuthRequest. 
    */ 
    function post($url, $parameters = array()) { 
    $response = $this->oAuthRequest($url, 'POST', $parameters); 
    if ($this->format === 'json' && $this->decode_json) { 
     return json_decode($response); 
    } 
    return $response; 
    } 
+0

'$ connection-> post'返回的是什麼 – DevZer0

+0

它是我使用的類中的一個方法。我編輯問題 – Basel

回答

0

我的第一個停靠港,如果你能接受使用這些憑據的帳戶信息,將是您的應用程序已經閱讀寫(張貼)權限:

轉到dev.twitter.com/apps。選擇你的應用程序,然後在'設置' - > '應用程序類型'下,你會找到你需要的。

雖然這並不奏效,但無論您通過此應用發佈到您的帳戶的代碼發生了什麼變化,都不會起作用,因爲該功能超出了您自己設置的權限範圍。所以,現在我們知道你能張貼:

變化

$connection->post('statuses/update', array('status' => $message)); 

$result = $connection->post('statuses/update', array('status' => $message)); 

然後看看有什麼$結果的值。這可能會提供一些線索

確定這樣的反應是告訴你,你還是沒有權限,需要重新生成令牌和訪問憑據然後與他們更新代碼:

define("CONSUMER_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");  
define("CONSUMER_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
define("OAUTH_TOKEN", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
define("OAUTH_SECRET", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 

這些憑據仍然擁有以前的權限,當您請求新的令牌時,它將引用新的權限並允許您發佈。

+0

我更改了讀寫權限,但我仍然無法發佈任何鳴叫 – Basel

+0

請參閱我的回答中的編輯 – JohnnyFaldo

+0

我無法理解他們說「處理您的OAuth請求時出錯:只讀應用程序無法POST」 – Basel