답변이 안달려서 재등록 합니다.사용자 정보 조회시 응답값 문의

응답값이 json 형태가 아니던데요.
json 값만 따로 받을수 없는건가요?

$TOKEN_API_URL = “https://kapi.kakao.com/v2/user/me”;
$header_data = [];
$header_data[] = 'Authorization: Bearer '.$data[‘access_token’];

$ch = curl_init(); //curl 사용 전 초기화 필수(curl handle)
curl_setopt($ch, CURLOPT_URL, $TOKEN_API_URL); //URL 지정하기
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
curl_setopt($ch, CURLOPT_POST, 1); //0이 default 값이며 POST 통신을 위해 1로 설정해야 함
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); //POST로 보낼 데이터 지정하기
curl_setopt($ch, CURLOPT_POSTFIELDSIZE, 0); //이 값을 0으로 해야 알아서 &post_data 크기를 측정하는듯
curl_setopt($ch, CURLOPT_HEADER, true);//헤더 정보를 보내도록 함(*필수)
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data); //header 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //이 옵션이 0으로 지정되면 curl_exec의 결과값을 브라우저에 바로 보여줌. 이 값을 1로 하면 결과값을 return하게 되어 변수에 저장 가능(테스트 시 기본값은 1인듯?)
$res = curl_exec ($ch);
$info = json_decode($res, true);
curl_close($ch);

var_dump($res);//결과값 확인하기

이런식으로 호출시

string(361) “HTTP/1.1 200 OK Date: Fri, 22 Jan 2021 08:00:22 GMT Server: Apache Quota-Type: INC_AND_CHECK Content-Type: application/json;charset=UTF-8 Content-Length: 195 {“id”:1549506510,“connected_at”:“2020-12-02T09:22:02Z”,“kakao_account”:{“has_email”:true,“email_needs_agreement”:false,“is_email_valid”:true,“is_email_verified”:true,“email”:“realmon@naver.com”}}”

이런식으로 응답값이 찍힙니다.

  1. $res = curl_exec ($ch); 여기서 $res 가 json입니다.
  2. $info = json_decode($res, true); 여기서 $info는 Json을 Object로 접근가능하도록 변환 되었구요.
  3. var_dump($res); 여기가 출력부로 var_dump가 그렇게 표시합니다.

var_dump($res); 삭제 하시고
echo $res 하시면 json만 표시됩니다.

그냥 단순히 var_dump를 안쓰고 echo $res 만해도

HTTP/1.1 200 OK Date: Tue, 26 Jan 2021 05:48:05 GMT Server: Apache Quota-Type: INC_AND_CHECK Content-Type: application/json;charset=UTF-8 Content-Length: 195 {“id”:1549506510,“connected_at”:“2020-12-02T09:22:02Z”,“kakao_account”:{“has_email”:true,“email_needs_agreement”:false,“is_email_valid”:true,“is_email_verified”:true,“email”:“realmon@naver.com”}}

이런 값이 찍힙니다.
$res에 들어 가는 값이 json형태가 아니라는 말이죠.

이 부분이 왜 그런지 확인 좀 부탁 드립니다.

curl_setopt($ch, CURLOPT_HEADER, true);//헤더 정보를 보내도록 함(*필수)

여기를 제거하세요!~

  • CURLOPT_HEADER : 콜백데이터에 헤더 부착 여부 설정
    :slight_smile:

네 감사합니다.
잘 되네요.후