테스트 사이트 - 개발 중인 베타 버전입니다

Oauth 질문드립니다.

Radar 7년 전 조회 4,849

안녕하세요.

네이버 클라우드 에서 API방식으로 요금을 과금하고 사용하는 GeoLocation 입니다.

Oauth 방식을 처음 보아서...계속 오류만 뜨는데요.. 혹시 Oauth 부분에 대해 아시면 답변 감사합니다.

 

</p>

<p>function buildBaseString($baseURI, $method, $params) {

 $r = array();

 ksort($params);

 foreach($params as $key=>$value){

  $r[] = "$key=" . rawurlencode($value);

 }

 return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));

}</p>

<p>$Header['oauth_consumer_key'] = "Access Key ID";

$Header['oauth_timestamp'] = time();

$Header['oauth_nonce'] = md5(mt_rand());

$Header['oauth_signature_method'] = "HMAC-SHA1";

$Header['oauth_version'] = "1.0";

$base_info = buildBaseString("<a href="https://api.ncloud.com/geolocation/"," target="_blank" rel="noopener noreferrer">https://api.ncloud.com/geolocation/",</a> 'GET', $Header);

$Header['oauth_signature'] = base64_encode(hash_hmac( 'sha1', $base_info, "Secret Key"));</p>

<p>echo "<a href="https://api.ncloud.com/geolocation/?".http_build_query($Header);" target="_blank" rel="noopener noreferrer">https://api.ncloud.com/geolocation/?".http_build_query($Header);</a>

echo "

";</p>

<p>$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "<a href="https://api.ncloud.com/geolocation/?".http_build_query($Header)); " target="_blank" rel="noopener noreferrer">https://api.ncloud.com/geolocation/?".http_build_query($Header)); </a>

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$data = curl_exec($ch); 

curl_close($ch); 

echo $data;</p>

<p>

 

Access Key ID

Secret Key

은 정상적으로 입력하여

 

확인해보면

 

801 Signature is invalid

에러가 표시되는데요 ㅠㅠ oauth_signature 키값 정상적인거 같은데 작동이 되지 않습니다.

왜그럴까요 ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

아~ 아직 해결 하지 못하셨으면 네이버포럼인가 거기서 문의글 남겨보면 해결하실수있어요 저도 그렇게해서 좀 오래걸렸지만 풀기도 했어요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인