2015-01-08 110 views
0

我試圖訪問幾個API來獲取PHP中的數據。他們都使用OAuth授權,我不能爲我的生活弄清楚。使用OAuth進行API授權,使用PHP

如果我使用API​​的URL進行CURL請求或file_get_contents請求數據,顯然它會要求我授權。

我的問題是,如何使用OAuth初始化此授權?

我有我的消費者密鑰,消費者機密,OAuth令牌和OAuth令牌密鑰。其中的API指出,我需要包括適當的OAuth頭符合我的要求,即:

Authorization: OAuth 
    oauth_consumer_key="key", 
    oauth_token="token", 
    oauth_signature_method="HMAC-SHA1", 
    oauth_signature="f922O9A2W5mFwDgiDvZbTSMK%2FPY%3D", 
    oauth_timestamp="157131220", 
    oauth_nonce="90922def48616d6d65724c61686176", 
    oauth_version="1.0" 

但我不知道如何實際代碼這個頭在PHP正常。
我已經在我的PHP腳本的頂部嘗試了header(),或者在我的file_get_contents請求中使用了上下文參數。我也研究過捲曲標題。我只是想不出來。
我覺得我失去了一些明顯的東西,任何意見將不勝感激!

+1

您應該添加您編寫的代碼是你的問題做一些修改。 – CSchulz

回答

0

你試過用cURL來請求嗎?我覺得多一點直截了當比file_get_contents()嘗試

$headers = array(
Authorization => OAuth 
oauth_consumer_key => "key", 
oauth_token => "token", 
oauth_signature_method => "HMAC-SHA1", 
oauth_signature => "f922O9A2W5mFwDgiDvZbTSMK%2FPY%3D", 
oauth_timestamp => "157131220", 
oauth_nonce => "90922def48616d6d65724c61686176", 
oauth_version => "1.0"); 

curl_setopt($cURL, CURLOPT_URL, $url); 
curl_setopt($cURL, CURLOPT_NOBODY, true); 
curl_setopt($cURL, CURLOPT_POST, true); 
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($cURL, CURLOPT_POSTFIELDS, $data); 
curl_setopt($cURL, CURLOPT_HEADER, true); 
curl_setopt($cURL, CURLINFO_HEADER_OUT, true); 
curl_setopt($cURL, CURLOPT_NOBODY, true); 
curl_setopt($cURL, CURLOPT_HTTPHEADER, $headers); 
$result = curl_exec($cURL); 

不太確定數組的形式,但類似