2013-12-13 24 views
1

我有一個奇怪的問題。我有一個簡單的代碼,可以從稱爲Mixi的社交平臺的OAuth API獲取身份驗證令牌。之後,我使用PHP的簡單curl來獲取用戶的個人資料數據等,一旦授予權限。 但是,問題在於它在任何普通的PHP託管中都可以正常工作。在GoDaddy等,但我的項目要求它最終在基於Amazon EC2 Windows的服務器,我不是很熟悉;但我確保PHP能夠正常工作,並且應用程序頁面正確地被提供。圖形API令牌不能在EC2上工作

代碼在其他託管服務器上正常工作的事實表明代碼是正確的。但是,在亞馬遜上;從第一個捲曲執行者,我沒有得到授權令牌。我試圖多次重新生成API消費者密鑰。

我甚至重新設置Windows系統時間以匹配相同的時區。我認爲另一個我認爲相關的信息是API網址都是https ...我不確定是否會導致任何問題。我是否需要在Amazon EC2 Windows服務器上設置一些特殊功能,以便能夠使用社交網絡API中的cURL正確提取?

請讓我知道如果你想讓我提供任何額外的信息,但它是令人困惑的,因爲我的應用程序完全相同的代碼在2個不同的普通託管服務提供商工作,我通過cPanel訪問,並獲得令牌和所需的配置文件數據在那裏的JSON響應。

謝謝。

回答

0

一個長期的鬥爭之後,這裏是解決方案:

要通過Amazon EC2上需要一個單獨的證書文件將包含捲曲運行HTTPS。這可以從這裏下載:

http://curl.haxx.se/docs/caextract.html 

在此之後,在PHP代碼捲曲調用之前添加此方式是:

curl_setopt($ch, CURLOPT_CAINFO, 'cacert.pem'); 

其中$ CH是捲曲處理(curl_init的返回值()呼叫)。我希望這可以幫助任何面臨同樣問題的人無法從EC2上的API運行https提取。 我還不確定,爲什麼相同的代碼在Godaddy或任何普通主機上運行,​​可能他們自己也包含這個證書,因此我們可以直接從cURL調用https。