2015-01-08 5 views
0

PHP에서 데이터를 가져 오기 위해 액세스하려는 여러 API가 있습니다. 그들은 모두 OAuth 인증을 사용하고 있으며 내 인생을 위해 그것을 이해할 수는 없습니다.PHP로 API 인증을위한 OAuth 사용

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에서이 헤더를 제대로 모른다.
header()으로 PHP 스크립트 맨 위 또는 내 file_get_contents 요청에 컨텍스트 매개 변수를 사용하여 시도했습니다. 머리카락을 잘 살펴 보았습니다.

나는 그것을 알 수 없다.
나는 명백한 무엇인가 놓치고있는 것처럼 느낀다, 어떤 충고라도 매우 바르게 평가 될 것이다!

+1

비슷한 찾을 수 있습니다. – CSchulz

답변

1

내가 (https://dev.twitter.com/oauth/overview/authorizing-requests)의 지침을 따랐는데 그 당시 API에 액세스하려고했기 때문입니다. 그 당시에 한 가지 잘못되었습니다. 그것은 단계 2.1에서의 urlencoding이었습니다. 이것은 지금 다를 수 있습니다.

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); 

을 시도보다 솔직하지만 당신은 당신의 질문의 편집로 작성된 코드를 추가해야

관련 문제