2012-08-15 2 views
-1

트위터를 사용하여 시스템에 싱글 사인 인을 개발하는 작업이 주어졌으며 타사 API를 사용할 수 없습니다. 그러나 나는 CURL과 PHP를 사용할 수 있습니다. 이를 수행하는 가장 좋은 방법은 무엇입니까? 지금까지 나는 이것을 가지고 있지만 작동하지 않습니다. "oauth 서명 및 토큰의 유효성을 검사하지 못했습니다."라는 오류를 출력합니다.트위터 싱글 사인온 타사 API가없는 OAuth PHP

이 작업을 수행하는 방법에 대한 조언이 필요합니다.

$fields = array(
      'oauth_callback'  => 'http://www.mydomain.co.uk/redirect.php' 
     ); 

     //url-ify the data for the POST 
     foreach($fields as $key=>$value) { 
      $fields_string .= $key.'='.$value.'&'; 
     } 

     rtrim($fields_string, ""); 

     echo $fields_string; 

     $curl = curl_init("https://api.twitter.com/oauth/request_token"); 

     //Send auth data to twiter 
     curl_setopt($curl, CURLOPT_POST, count($fields)); 
     curl_setopt($curl, CURLOPT_POSTFIELDS, $fields_string); 

     //Will return json object 
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

     $result = curl_exec($curl); 

     //debugger 
     if($debug){ 
      if(! curl_errno($curl)) { 
       $info = curl_getinfo($curl); 
       echo 'Took ' . $info[ 'total_time' ] . ' seconds to send a request to ' . $info[ 'url' ]; 
      } 
     } 


     curl_close($curl); 

     echo $result; 
+0

"작동하지 않습니다": 작동하지 않는 이유는 무엇입니까? 오류가 있습니까? – Tchoupi

+0

oauth 서명과 토큰을 검증하지 못했습니다. –

+0

빈 문자열을 제공 한 이후로'rtrim()'은 아무 것도하지 않습니다. 당신은'http_build_query()'를 사용하여 매개 변수를 인코딩합니다. 'CURLOPT_POST'는 부울을 기대합니다. curl_error()를 사용하여 무슨 일이 일어나는지 알아 내야한다. 매개 변수에 문제가있을 수 있지만 표시되지 않습니다. '$ fields'에 어떤 매개 변수를 포함하는지 알려줄 수 있습니까? – Tchoupi

답변

0

나는 PEAR HTTP_OAUTH 라이브러리의 사용을 제안합니다. 바퀴를 다시 발명 할 이유가 없습니다.