2013-03-15 50 views
0

我有一個小型應用程序,它使用(使用)OAuth Echo與Tweetbot的自定義圖像端點一起自我託管我發佈到Twitter的媒體。最近的API更新已經打破了應用程序,我似乎無法找到任何有關如何解決它的信息。如何將Twitter OAuth Echo更新爲API 1.1版(PHP)

下面是我用的是更新前等級:

// Twitter oAuth Echo Class 
// Author: http://shikii.net/blog/creating-a-custom-image-service-for-twitter-for-iphone/ 
class namespace_TwitterOAuthEcho 
{ 
    public $verificationUrl = "https://api.twitter.com/1/account/verify_credentials.json"; 
    //isset($_SERVER['X-AUTH-SERVICE-PROVIDER']) ? $_SERVER['X-AUTH-SERVICE-PROVIDER'] : false; 

    public $userAgent = __CLASS__; 

    public $verificationCredentials; 

    /** 
    * 
    * @var int 
    */ 
    public $resultHttpCode; 
    /** 
    * 
    * @var array 
    */ 
    public $resultHttpInfo; 
    public $responseText; 

    /** 
    * Save the OAuth credentials sent by the Consumer (e.g. Twitter for iPhone, Twitterrific) 
    */ 
    public function setCredentialsFromRequestHeaders() 
    { 
    $this->verificationCredentials = isset($_SERVER['HTTP_X_VERIFY_CREDENTIALS_AUTHORIZATION']) 
     ? $_SERVER['HTTP_X_VERIFY_CREDENTIALS_AUTHORIZATION'] : false; 
    } 

    /** 
    * Verify the given OAuth credentials with Twitter 
    * @return boolean 
    */ 
    public function verify() 
    { 
    $curl = curl_init($this->verificationUrl); 
    curl_setopt($curl, CURLOPT_USERAGENT, $this->userAgent); 
    curl_setopt($curl, CURLOPT_HEADER, false); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
     'Authorization: ' . $this->verificationCredentials, 
    )); 

    $this->responseText = curl_exec($curl); 
    $this->resultHttpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
    $this->resultHttpInfo = curl_getinfo($curl); 
    curl_close($curl); 

    return $this->resultHttpCode == 200; 
    } 
} 

作爲Twitter的API新手,我不是一定要改變什麼讓它再次合作。 Twitter's OAuth Echo文檔自2012年8月以來未更新,因此沒有任何幫助。

Twitter的API 1.1概述頁確實說all endpoints now require authorization。精細。我建立了一個新的應用程序;拿到了我的消費者鑰匙/祕密。但是,我不確定那些人去哪裏。在Twitter上編輯應用程序設置時,我也不確定應該在這裏設置什麼設置。我的應用程序沒有(在我看來)實際上需要與Twitter進行交互。我只是試圖發回一個URL到Tweetbot(任何Twitter客戶端),所以它可以將它放在推文中。

獲得此更新的任何幫助將不勝感激。謝謝。

回答

3

更換

public $verificationUrl = "https://api.twitter.com/1/account/verify_credentials.json"; 

with 

public $verificationUrl = "https://api.twitter.com/1.1/account/verify_credentials.json"; 

完蛋了。您只需要更改網址。也沒有必要改變你的twitter應用程序。它也會與你的舊APP一起工作。

+0

這簡直令人尷尬。感謝您節省我測試我的代碼的各種完全不必要的變化。 – Shelton 2013-03-15 18:21:16