2015-05-10 32 views
0

我正在嘗試使用PHP庫的@abraham'sTwitterOAuth 0.5.3庫,但是當我提出請求爲3-legged authorization請求令牌時,我收到一個HTTP 500作爲響應。無法使用亞伯拉罕的TwitterOAuth for PHP獲取令牌; HTTP 500返回

這裏是我有代碼的PHP設置:

<?php 

/* Start session and load library. */ 
session_start(); 

require_once('config.php'); 

require_once('twitteroauth/autoload.php'); 
use Abraham\TwitterOAuth\TwitterOAuth; 

/* Build TwitterOAuth object with client credentials. */ 
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); 

/* Get temporary credentials. */ 
// Error occurs on the following line, unable to dump $request_token 
$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK)); 

//print_r($request_token); // <-- Never reached!! 

我知道這個問題是不是Twitter的API中,因爲我已驗證我可以通過Dev console訪問我的Twitter帳戶。

此外,我已經在某種程度上驗證了TwiterOAuth庫正在工作,通過遵循庫提供的Authorization flow example。該示例還可以訪問我的Twitter帳戶。

我只是無法弄清楚發生了什麼,因爲我無法正確授權我的PHP應用程序訪問我的Twitter帳戶。

我在做什麼錯?

回答

0

事實證明,從未獲得響應。因此,嘗試處理響應時,如果沒有任何響應導致服務器端發生錯誤。

Twitter OAuth依賴的PHP函數之一是curl。我曾測試,看是否存在curl_init

print function_exists('curl_init') ? 'curl_init is enabled' : 'curl_init is disabled';

,我錯誤地認爲curl_exec也被啓用。 (爲什麼你會離開curl_init啓用,但只禁用curl_exec?)

這種假設是不正確的,我的網站託管服務提供商已禁用curl_exec「出於安全考慮」,我不知道這一點。此外,我過去使用Twitter API的呼聲很高,所以這是一種新的行爲。

我花了一段時間纔回到測試curl_exec。我確認我收到了一個有效的TwitterOauth對象,並最終以我的方式進入了TwitterOauth類和請求函數。

我沒有收到捲曲錯誤,但是是curl_exec爲空的響應(不是TRUE or FALSE as expected)。我認爲這是不尋常的,起初認爲curl缺少配置選項。

但事實並非如此。

因此,如果遇到這個庫的問題(這對我來說過去很好),可能是您的託管服務提供商禁用了curl_exec

您可以通過下面的PHP代碼測試這樣的場景:

print function_exists('curl_exec') ? 'curl_exec is enabled' : 'curl_exec is disabled';

相關問題