작성
·
417
1
네이버 api 요청 관련 질문 있습니다
github:
https://github.com/hyunsokstar/naver-add-prototype
back:
npm run start:dev
front:
npm run dev
controller 에서 http://localhost:8000/naver_add 요청을 받으면 네이버 광고에 api 요청(https://naver.github.io/searchad-apidoc/#/guides) 을 날려서 응답 받은걸 다시 프론트로 보내려고 하는데요
참고 문서는 https://ukcasso.tistory.com/99 이고
컨트롤러와 서비스는 다음과 같습니다.
그런데 헤더 설정이 잘못되어서인지
import { NaverAddService } from './naver_add.service';
import { SuccessInterceptor } from './../common/interceptors/success.interceptor';
import { Controller, Get, Req, UseInterceptors } from '@nestjs/common';
// import CryptoJS from "crypto-js";
import * as CryptoJS from 'crypto-js'
var method = "GET";var api_url = "/keywordstool";var timestamp = Date.now() + '';const accessKey = "01000000000f85a84ea950600f3a5a2214f5f379afa3f09898cbf7a1699007c1167fe2e247"var secretKey = "AQAAAAAPhahOqVBgDzpaIhT183mv52WgZFJyJCX8PE87IzXJwg==";
var method = "GET";var timestamp = Date.now() + '';var secretKey = "YOUR_SECRETKEY";var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey);hmac.update(timestamp + '.' + method + '.' + api_url);var hash = hmac.finalize();hash.toString(CryptoJS.enc.Base64);
@Controller('naver_add')@UseInterceptors(SuccessInterceptor)export class NaverAddController {
constructor( private readonly naverAddService: NaverAddService ) { }
@Get() getNaverAddInfo() { const api_key = process.env.API_KEY; const secret_key = process.env.SECRET_KEY; const customer_id = process.env.CUSTOMER_ID;
const options = { url: 'https://api.naver.com/keywordstool?hintKeywords=' + "skilnote" + '&showDetail=1', headers: { 'X-Timestamp': timestamp, 'X-API-KEY': api_key, 'X-API-SECRET': secret_key, 'X-CUSTOMER': customer_id, 'X-Signature': hash.toString(CryptoJS.enc.Base64) } }; // const result = this.naverAddService.getNaverAddInfo(options).subscribe( // res => { // console.log(res); // });
const result = this.naverAddService.getNaverAddInfo(options).pipe().subscribe()
console.log("result : ", result); // return result }
}
요청 자체는 성공으로 출력 되지만
콘솔에 이런 에러가 발생 합니다.
http://www.skilnote-for-starter.shop/wm/myshortcut/trouble-shotting/1
혹시 해결 방법 알려주시면 감사요 그리고 혹시 멘토링 같은건 안해주시나요 주말이든 주중이든 채팅이나 직접 만나서든 배우고 싶습니다.
답변 3
0
안녕하세요 현석오님.
깃허브에 올려주신 코드와 올려주신 테스트 결과만으로 정확히 오류가 어디 있는지 확인하기 어렵습니다.
가장 크게 의심되는 부분은 api 호출 헤더를 작성해주는 부분에서, process.env.[KEY] 와 같은 형식으로 .env 파일에 있는 환경변수를 불러오는 과정에서 제대로 값이 불러와지지 않은 것 같습니다. 이 부분을 console.log로 한 번 확인해주시고, 그래도 해결되지 않는다면 다시 한 번 질문글로 작성해주시면 바로 다시 확인해보겠습니다. 감사합니다.
또한, API KEY와 SECRET KEY는 현석오님에게만 제공되는 키로, 공개된 웹에 해당 키를 노출시켰을 때 타인이 이를 악용할 수 있습니다. 질문글에서 해당 부분을 삭제하시고, 깃허브 레포지토리도 private으로 변경하시는 것을 추천드립니다.
0
0